METAPHORS' BLOG
Metaphors
Sep 16, 2017
It takes 5 minutes to read this article.

Linux用户和文件权限管理

本文为原创文章,转载请标明出处

目录

  1. 用户管理
    • 系统用户文件
    • 添加用户 useradd
    • 设置用户密码 passwd
    • 删除用户 userdel
    • 用户管理 usermod
  2. 用户组管理
    • 系统用户组文件
    • 添加用户组 groupadd
    • 删除用户组 groupdel
    • 用户组管理
  3. 基本权限及管理命令
    • 修改文件属主 chown
    • 修改文件属组 chgrp
    • 文件权限管理 chmod
    • suid、sgid、sticky权限
    • 权限掩码 umask
  4. 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]

如有不当之处,请予指正,谢谢~


>