Linux用户和文件权限管理
本文为原创文章,转载请标明出处
目录
- 用户管理
- 系统用户文件
- 添加用户 useradd
- 设置用户密码 passwd
- 删除用户 userdel
- 用户管理 usermod
- 用户组管理
- 系统用户组文件
- 添加用户组 groupadd
- 删除用户组 groupdel
- 用户组管理
- 基本权限及管理命令
- 修改文件属主 chown
- 修改文件属组 chgrp
- 文件权限管理 chmod
- suid、sgid、sticky权限
- 权限掩码 umask
- POSIX ACL权限系统及其管理命令
- ACL权限管理 setfacl
- ACL权限查看 getfacl
1. 用户管理
系统用户文件
系统用户文件 etc/passwd
用户密码文件 etc/shadow
添加用户 useradd
# useradd [username]
参数
d:指定用户home目录
e:设置过期时间
g:指定新用户所属的用户组
s:指定新用户使用的shell
u:设置用户UID
例如:
# useradd -s /bin/ksh metaphors
# useradd -g group user
设置用户密码 passwd
# passwd [username]
删除用户 userdel
# userdel [username]
删除用户及其家目录和邮件文件
# userdel -r [username]
用户管理 usermod
# usermod [username]
参数
L:锁定用户,禁止用户登录系统
U:解除锁定
e:指定用户过期的日期
f:指定用户过期之后的缓冲时间,即过期后还能登陆的天数
d:为用户指定新的家目录
m:为用户指定新的家目录时,移动原来家目录中的所有文件
s:修改用户的默认shell
2. 用户组管理
系统用户组文件
系统用户组文件 \etc\group
用户组密码文件 \etc\gshadow
添加用户组 groupadd
# groupadd [groupname]
删除用户组 groupdel
# groupdel [groupname]
用户组管理
参数
g:将用户的私有组改变为选项指定的组
G:为用户添加多个附加组,使用逗号作为分隔符
a:将用户以追加的方式添加到一个附加组
例如:
# usermod -g teacher metaphors
# usermod -G teacher,admin metaphors
3. 基本权限及管理命令
修改文件属主 chown
# chown [user:group] [file]
参数
-R => 递归修改
修改文件属组 chgrp
# chgrp [group] [file]
参数
-R => 递归修改
文件权限管理 chmod
# chmod [mode] [file]
权限表达式:
操作对象
u => user
g => group
o => other
a => all
操作符
+ => 添加权限
- => 删除权限
= => 赋予权限
权限列表
r => 读
w => 写
x => 执行
参数
-R => 递归修改
suid、sgid、sticky权限
suid => set权限处于属主权限位
sgid => set权限处于属组权限位
sticky => sticky权限,防删除,但不能阻止root和属主删除
绝对模式下,从右向左第4位,4表示suid,2表示sgid,1表示sticky
以符号模式设置属主set权限
# chmod u+s test.sh
以符号模式设置属组set权限
# chmod g+s test.sh
以符号模式添加防删除位
# chmod o+t file
以绝对模式设置属主和属组set权限
# chmod 6755 test.sh
以绝对模式添加防删除位
# chmod 1777 file
权限掩码 umask
查看umask
# umask
修改umask
# umask []
umask命令修改的umask值在重启后丢失,若需要保存,可写入shell配置文件中
4. POSIX ACL权限系统及其管理命令
POSIX:Portable Operating System Interface 可移植操作系统接口
ACL:Access Control List 访问控制列表
ACL权限管理 setfacl
# setfacl [ACL表达式] [filename]
ACL表达式:[对象类型]:[对象]:权限列表
参数
b:删除所有扩展ACL权限
k:删除默认的ACL权限
d:设置默认的ACL权限
R:递归设置
m:修改、添加已有的ACL权限
例如:
# setfacl -m u:metaphors:rw file
ACL权限查看 getfacl
# getfacl [filename]
如有不当之处,请予指正,谢谢~