Linux-文件权限管理和用户组管理

1,786 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

文件权限管理和用户组管理,包括权限说明,和相关命令使用方法,如useradd、passwd、groupadd、groupmod、chown等

1. Linux文件权限管理

权限、拥有者及用户组

image.png

1.1 [drwxr-xr-x]

  • r可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 --> 764)
  • 第1位:文件类型(d 目录,- 普通文件,l 链接文件)
  • 第2-4位:所属用户权限,用u(user)表示
  • 第5-7位:所属组权限,用g(group)表示
  • 第8-10位:其他用户权限,用o(other)表示
  • 第2-10位:表示所有的权限,用a(all)表示

2. 相关命令

用户及组的配置文件

  • /etc/passwd:用户
  • /etc/shadow:用户的影子口令文件
  • /etc/group:分组
  • /etc/gshadow:分组密码

/etc/passwd格式

用户名:密码占位符x:UID:组ID:全称:主目录:shell elk:x:1001:1001::/home/elk:/bin/bash

UID:0:超级用户,1~499:程序用户,500~65535:普通用户 GID: /etc/group格式

组名:密码占位符x:ID:GID:本组的成员用户列表 root:x:0:

2.1 useradd

创建用户 Usage: useradd [options] LOGIN

参数说明

  • -d:指定用户登入时的起始目录
  • -g:指定用户所属基本组,仅有一个
  • -G:指定用户所属附加组,允许多个,用户会拥有所属组的权限
  • -m:自动建立用户的登入目录
  • -s:指定用户登入后所使用的shell
  • -e:指定帐号的有效期限

2.2 passwd

只有 root 用户才有权设置指定账户的密码。一般用户只能设置或修改自己账户的密码 Usage: passwd [OPTION...] <accountName>

参数说明

  • -d:删除密码
  • -l:停止账号使用
  • -u:启用已被停止的账户
  • -S:显示密码信息
  • -x:设置密码的有效期
  • -i:过期后停止用户账号
  • -f:强迫用户下次登录时修改口令

2.3 userdel

Usage: userdel [options] LOGIN

参数说明

  • -r:把用户的主目录一起删除

2.4 usermod

Usage: usermod [options] LOGIN

参数说明

  • -l:改变用户帐户名
  • -L:锁定账号
  • -U:解锁账号
  • -g:修改用户所属的群组
  • -G:修改用户所属的附加群组

2.5 groupadd

Usage: groupadd [options] GROUP

参数说明

  • -r:创建系统用户组,该类用户组的GID值小于500

2.6 groupmod

Usage: groupmod [options] GROUP

参数说明

  • -n:改变用户组的名称
  • -g:重设用户组的GID

2.7 groupdel

删除群组 Usage: groupdel [options] GROUP

2.8 gpasswd

添加用户到指定的组 / 从指定的组中移除用户 Usage: gpasswd [option] GROUP

参数说明

  • -a:将用户添加到指定的组,使其成为该组的成员
  • -b:从用户组中移除某用户

2.9 chown

变更文件或目录的拥有者,使用权限root Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE... or: chown [OPTION]... --reference=RFILE FILE...

参数说明

  • -R:递归处理,处理指定目录以及其子目录下的所有文件

2.10 chmod

变更文件或目录的权限 Usage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE...

参数说明

  • MODE格式:[ugoa]([-+=]([rwxXst]|[ugo]))+|[-+=][0-7]+
  • -R:递归处理,处理指定目录以及其子目录下的所有文件

r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=5。

2.11 chgrp

变更文件或目录的所属群组 Usage: chgrp [OPTION]... GROUP FILE...

参数说明

  • --reference=参考文件:将每个文件的所属组设置为与指定参考文件相同
  • -R:递归处理,将指定目录下的所有文件及子目录一并处理

2.9 管理文件拥有者及权限

  • chown(管理文件的拥有者)
  • chmod(管理文件的权限)
  • chgrp(管理文件所属组群)

参数说明

  • -R:表示递归目录下所有文件

commands example

useradd -m -d /home/<username> -s /bin/bash -g <groupname> <username>
passwd <username>
userdel -r <username>
usermod -l <NEW_USERNAME> <username>
groupmod -n <NEW_GROUPNAME> <groupname>
groupmod -g <NEW_GID> <groupname>
groupdel <groupname>
gpasswd -a <username> <groupname>
gpasswd -d <username> <groupname>
usermod -a -G <groupname> <username>
chown -R <username>[:<groupname>] file...
chmod ug+w,o-w file1.txt file2.txt

3. Linux赋予普通用户root权限

less /etc/sudoers

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
<username>    ALL=(ALL)       ALL

4. 示例

## 添加用户
useradd -m -d /home/zhangsan -s /bin/bash -g dev zhangsan
useradd -g dev -m zhangsan
# 修改目录所属组
chgrp -R dev /data/log
# 修改目录所属组权限
chmod -R g+w /data/log
# admin用户添加到dev附属组
usermod -G dev admin