Linux 用户及权限
2021-12-15 本文已影响0人
paul_deng
概览
本文主要引导如何看用户和权限,及简单的权限设置,不做详细的用户增删查改等操作说明。
1. 查看用户
1.1 查看用户列表
$ cat /etc/passwd
输出说明:
# 格式
# 用户名:密码:用户ID:组ID:用户全名:主目录:登录shell
# 密码:存在/etc/shadow中,x表示有, !表示不能用密码访问
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
deploy:x:1000:1000::/home/deploy:/bin/bash
backup:x:1001:1001::/home/backup:/bin/bash
1.2 查看用户组别
$ cat /etc/group
输出说明:
# 用户组:密码:GROUPID:组的附加用户(不含同名的默认用户)
# 密码: 真正的密码在 /etc/gshadow
root:x:0:
bin:x:1:
adm:x:4:
...
deploy:x:1000:
docker:x:992:deploy
backup:x:1001:
1.3 查看用户活动
显示当前登录系统的用户
$ who -H
$ w
2. 查看权限
2.1 查看文件权限
$ ls -lh /data
输出说明:
# 权限
# 第一列: 目录 + owner 权限 + group 权限 + others 的权限
# 第三列: owner
# 第四列: group
drwxr-xr-x 5 deploy deploy 4.0K Feb 3 2021 docker
drwx--x--x 3 root root 4.0K Feb 3 2021 lib
drwx------ 2 root root 16K Feb 3 2021 lost+found
- 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。
- 第二列表示链接数,表示有多少个文件链接到inode号码。
- 第三列表示拥有者
- 第四列表示所属群组
- 第五列表示文档容量大小,单位字节
- 第六列表示文档最后修改时间,注意不是文档的创建时间哦
- 第七列表示文档名称。以点(.)开头的是隐藏文档
2.2 查看进程权限
# 尝试用 backup 用户进入到容器(无权限)
backup$ docker exec -it saas bash
> Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/saas/json: dial unix /var/run/docker.sock: connect: permission denied
==可以看到拒绝了,因为 backup 用户没有该进程的访问权限==。通过 root 查看了 /var/run/docker.sock 的权限信息,如下:
root$ ls -lh /var/run/docker.sock
srw-rw---- 1 root docker 0 Jan 18 2021 /var/run/docker.sock
==可以看到 root 用户 和 docker 组拥有该进程的访问权限,所以只要把 backup 用户加入到 docker 组即可== 用户及组管理会在下面提及
3. 管理用户
# 新建用户
$ useradd [用户名]
# 密码设置
$ passwd [用户名]
用户默认会添加到自己的组别上,如果需要添加到其他组别以便获得对应组别的权限,则可以:
# 添加用户到某个组
$ usermod -a -G [组名] [用户名]
指令说明:
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
4. 管理权限
4.1 标准用户的管理员权限
默认添加的用户都是标准用户,如果我们需要给标准用户 root 权限,则将他加入到 sudoers (慎用)
# 打开 sudoers 文件
$ visudo
# 添加用户行到文件尾
[用户名] ALL=(ALL) ALL
# :wq 保存退出
测试:
# 切换用户
$ su [用户名]
# 进入到 sudo 模式(能进入则表示成功)
$ sudo su
4.2 管理文件夹的权限
参考 《Linux 目录文件权限》