Linux用户和权限, since 2020-11-19

(2020.11.19 Thur)

用户

用户名的第一位是一个英文字母,后面跟着的可以是字母、数字和符号。

$who am i #找出自己的身份
$who #找出所有的登陆用户

返回结果中的pts说明了用户登录的终端号。如果用户从ssh登陆,括号中的IP地址说明了用户从哪个IP地址远程登陆。用write命令可以给其他用户发信息。如anna发信息给jeff

$echo 'where is your draft?' | write jeff

用户是用户组(groups)的一个成员。组是多个用户的集合,组内用户有共同的权限。

$groups #查看所有组
$groups jeffcheung #查看用户j所在的组

用户的ID用UID(user id)来表示,所在组群用GID(group id)表示

$id jeffcheung #返回用户的各种id

root

创建用户需要root权限,root用户是Linux中的神用户,最高权限。

$su - #切换成root权限

sudo是临时性的扩张用户权限,以root身份,运行一些敏感/重要的操作,比如删除根目录

$rm -r /
$sudo adduser rachel #临时用root身份创建用户rachel
$su rachel #把自己切换成rachel用户
$sudo deluser -remove-home rachel #删除用户
$sudo groupadd ex # 创建用户组
$sudo groupdel genius #删除用户组

用户信息文件

用户信息保存在文件/etc/passwd中,上面对用户的操作,本质上都是操作该文件。文件中没行代表一个用户,每行用;分成7个部分:
用户:密码:UID:GID:描述:用户目录:登陆Shell
比如
jeffcheung:x:1000:1000::/home/pi:/bin/bash
描述部分空缺,密码部分用x表示,其含义是,密码以密文的形式保存在文件/etc/shadow中,也可以明文方式写在/etc/passwd中,但安全性受损。

用户组信息保存在/etc/group文件中,每一行代表了一个组,每一行用冒号分割成了4段信息,
组名:组密码:GID:用户列表,其中的用户名列表用逗号分开,包括了属于该组的全部用户

文件权限

读、写、执行,三种权限。

$ls -l a.bash #查询文件的权限详情
-rw-r--r--  1 jeffcheung  staff  63 Oct 31 11:48 a.bash

返回结果分为5个部分
1 -rw-r--r--,用户类型和权限
2 1文件的链接数
3 jeffcheung staff用户和拥有组
4 63 文件大小,单位字节
5 Oct ...上次修改文件的时间
表示文件的权限部分rw-r--r--,9个字符分为三个组,rw-,r--,r--,分别对应了拥有者(owner)、拥有组(owner group)、其他人(other)。rw-分别表示了读(r, read)、写(w, write)、无权执行该文件。如果有权执行该文件,则第三位用x表示。拥有者对文件有最高权力。还有一个组的用户区别于系统中的其他用户,对文件拥有特权。

文件权限管理

用chown改变文件的拥有者和用户组

$sudo chown jeff:staff a.bash #a.bash的拥有者改为jeff,把文件的拥有组改为staff
$sudo chmod 755 a.bash #更改之后,文件权限变为rwxr-xr-x

chmod的命令中对应了三位数字,分别对应了三类用户的权限第一个数字是拥有者权限,二是拥有组权限,三是其他用户权限。4-read,2-write,1-执行。每一位表示的权限之和,比如如果是5,则是read+执行权。

以前提到过目录也是一个文件,删除文件的操作,实际上是通过写入上级目录文件来实现。控制目录的读写权,也可以控制用户在该目录中增加和删除文件的权利。一个用户只有对目录文件享有执行权,才能在该目录中增删文件。用户通过cd切换工作目录,同样要对该用户有执行权。

Reference

1 Vamei,周梓昕著,树莓派开始玩转Linux,中国工信出版集团,电子工业出版社

你可能感兴趣的:(Linux用户和权限, since 2020-11-19)