在Linux系统中,权限管理和密码设置是系统安全的核心操作,合理配置权限和密码能有效防止未授权访问和数据泄露,本文将详细讲解Linux中文件/目录权限的更改方法以及用户密码的设置与修改,帮助用户掌握基础且实用的系统管理技能。
Linux权限更改:chmod命令详解
Linux文件权限分为读(r)、写(w)、执行(x)三类,分别对应文件所有者(user)、所属组(group)和其他用户(other),通过chmod
命令可灵活调整权限。
权限的数字表示法
数字表示法用0-7的数字组合对应权限,
- 读(r)=4
- 写(w)=2
- 执行(x)=1
- 无权限=0
通过将三类用户的权限数字相加,形成3位数的权限码。
755
:所有者权限7(rwx=4+2+1),所属组和其他用户权限5(r-x=4+1)644
:所有者权限6(rw-),所属组和其他用户权限4(r–)
示例:
# 修改文件权限为644(所有者读写,组和其他只读) chmod 644 file.txt # 修改目录权限为755(所有者可读/写/进入,组和其他可读/进入) chmod 755 /path/to/directory
权限的符号表示法
符号表示法通过[ugoa][+-=][rwx]
组合修改权限,
u
(user)、g
(group)、o
(other)、a
(all,所有用户)- (添加权限)、(取消权限)、(设置精确权限)
示例:
# 给所有者添加执行权限 chmod u+x script.sh # 取消所属组的写权限 chmod g-w document.pdf # 设置其他用户无权限 chmod o= file.log # 为所有用户添加读权限 chmod a+r data.txt
递归修改权限
对于目录及其内部所有文件/子目录,需使用-R
选项递归生效。注意:递归修改可能带来安全风险,需谨慎操作。
# 递归设置目录及其内容权限为755(目录)和644(文件) chmod -R 755 /var/www/html # 目录需755才能进入和读取内容 find /var/www/html -type f -exec chmod 644 {} ; # 单独设置文件权限为644
特殊权限说明
除基础权限外,Linux还有3种特殊权限,用于特定场景:
- SUID(4):用户执行文件时,临时以文件所有者身份运行(如
/usr/bin/passwd
)。chmod u+s /usr/bin/passwd # 设置SUID
- SGID(2):用户进入目录后,临时以目录所属组身份创建文件(如团队共享目录)。
chmod g+s /project/team_dir # 设置SGID
- Sticky Bit(1):限制其他用户删除文件(如
/tmp
目录,仅所有者可删除自己的文件)。chmod +t /public_share # 设置Sticky Bit
Linux密码设置与管理
密码是用户身份验证的关键,Linux通过passwd
命令管理用户密码,普通用户可修改自身密码,管理员(root)可管理所有用户密码。
普通用户修改自身密码
普通用户执行passwd
命令,需输入当前密码验证身份,然后输入两次新密码(系统会检查密码复杂度,如长度、字符类型)。
passwd # 提示输入当前密码和新密码
密码复杂度要求(默认由/etc/login.defs
或PAM模块控制):
- 长度通常≥8位
- 包含大小写字母、数字、特殊字符
管理员修改其他用户密码
root用户可直接修改任意用户密码,无需原密码验证(常用于重置忘记的密码)。
passwd username # root执行,直接输入两次新密码
高级密码管理选项
- 锁定/解锁用户密码:
passwd -l username # 锁定用户(无法登录,但密码仍保留) passwd -u username # 解锁用户
- 删除用户密码(允许无密码登录):
passwd -d username # 删除密码,登录时无需输入密码(不安全,谨慎使用)
- 强制用户下次登录修改密码:
passwd -e username # 下次登录时需强制修改密码
密码策略管理(chage命令)
通过chage
命令可设置密码过期时间、警告天数等策略,增强安全性。
# 设置密码90天后过期,过期前7天警告,过期3天后禁用账户 chage -M 90 -W 7 -I 3 username # 查看用户密码策略 chage -l username
权限与密码管理注意事项
- 权限最小化原则:仅授予必要的权限,避免过度开放(如
777
权限应尽量避免)。 - 密码安全:使用强密码(如大小写+数字+特殊字符组合),定期更换,避免重复使用。
- 特殊权限谨慎使用:SUID/SGID可能提升权限,需确保目标文件可信,避免安全漏洞。
相关问答FAQs
Q1:如何批量修改目录下所有文件的权限,同时保留目录权限不变?
A:使用find
命令结合-exec
选项,区分文件和目录类型:
# 递归修改所有文件权限为644,所有目录权限为755 find /path/to/directory -type f -exec chmod 644 {} ; find /path/to/directory -type d -exec chmod 755 {} ;
Q2:如何查看用户密码的状态(如是否锁定、过期时间)?
A:通过passwd
命令的-S
选项(仅root可用)或chage -l
查看详细状态:
# 查看用户密码简短状态(root可用) passwd -S username # 查看用户密码详细策略(包括过期时间、最后修改日期等) chage -l username
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/25917.html