您的位置:首页 > 运维架构 > Linux

Linux用户身份与文件权限

2018-01-06 10:56 501 查看

Linux用户身份与文件权限

用户的身份与能力

root
为超级用户,但是真正让他成为超级用户的是
UID


UID:每个用户都有对应的UID值

类型UID解释
超级用户0即root用户为0
系统用户1-999系统服务用户,被限制登录
普通用户1000-即普通用户
帐户名称与UID保存在
/etc/passwd
文件中,而帐户密码则保存在
/etc/shadow
文件中

GID:可以将多个用户加入某个组,方便管理

每个用户在创建的时候会创建一默认组(UID与GID相同,也叫基本组),后加入的叫扩展组。

用户组名称与GID保存在
/etc/group
文件中。

文件的普通权限:

文件或者目录的权限-来分别规定 所有者,所有组,其他人读,写,执行 权限

读(read),写(write),执行(execute),简写为(r,w,x),或者数字(4,2,1)

文件属性:

符号意义
-普通文件
d目录文件
l链接文件
b块设备文件
c字符设备文件
p管道文件
例如:

[root@VM_221_21_centos ~]# ls -ll
total 28
-rw-r--r-- 1 root root    0 Dec  1 16:21 1.c
-rw-r--r-- 1 root root    0 Dec  1 16:21 2.c
-rw-r--r-- 1 root root    0 Dec  1 16:21 3.c
-rwxr-xr-x 1 root root   34 Dec  1 17:27 dirname.sh
-rwxr-xr-x 1 root root  230 Dec  1 17:45 fibonacci.sh
-rw-r--r-- 1 root root    0 Dec  1 16:17 fortest
-rw-r--r-- 1 root root  242 Dec 18 15:57 helloworld.pyc
drwxr-xr-x 5 root root 4096 Dec 22 15:34 leanote
drwxr-xr-x 4 root root 4096 Dec 19 09:30 python_learn
-rwxr-xr-x 1 root root  334 Dec  1 18:23 sumOfArr.sh
drwxr-xr-x 2 root root 4096 Dec  1 19:52 testfor




-rw-r–r–:

表示它是一个普通文件,

所有者权限为
rw-
即可读可写不可执行,

所有组权限为
r--
即可读不可写不可执行,

其他人的权限为
r--
即可读不可写不可执行。

文件的特殊权限

SUID :让执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)

比如:所有用户都可以执行用于修改密码的
passwd
,但是用户密码保存在
/etc/shadow
,默认权限是
000
,即除了超级用户之外所有用户都没有查看或者编辑改文件权限,那
passwd
命令是怎么做到的呢?

所以对
passwd
命令加上了
SUID
权限位,就可让普通用户临时获得所有者的权限,即用
root
用户的权限将更改的密码写入到
shadow
文件中去。

SGID

1. 让执行者临时拥有属组的权限(对用于执行权限的二进制程序设置)

2. 在该目录中创建的文件自动继承此目录的用户组

chmod
修改文件或者目录的权限

chmod [参数] 权限 文件/目录


chown
修改文件或者目录的所属主和所属组

chown [参数] 所属主:所属组 文件/目录


ps:对于文件不加参数,遇到目录加大写-R(递归,修改目录内所有文件的属性)。

GID例子:

[root@VM_221_21_centos ~]# vim test.sh
[root@VM_221_21_centos ~]# ls -ll
total 4
drwxr-xr-x 7 root root 4096 Jan  4 19:55 blog
-rw-r--r-- 1 root root    0 Jan  6 09:55 test.sh
[root@VM_221_21_centos ~]# chmod -Rf 777 test.sh
[root@VM_221_21_centos ~]# chmod -Rf g+s 777 test.sh
[root@VM_221_21_centos ~]# ls -ll
total 4
drwxr-xr-x 7 root root 4096 Jan  4 19:55 blog
-rwxrwsrwx 1 root root    0 Jan  6 09:55 test.sh


文件访问控制链表

即对某个特定的用户进行单独的权限设置,就要用到文件的访问控制链表了ACL。

setfacl
用于增加或者修改ACL规则,格式为:
setfacl [参数] 文件


参数作用
-R递归(对目录而言)
-m设置文件的acl规则
-b删除acl规则
getfacl
用于显示文件的ACL规则,格式为:
getfacl 文件


例:

Link用户切换到root目录是不允许的,在赋予权限之后,就可以访问了。

[Link@VM_221_21_centos ~]$ cd /root
bash: cd: /root: Permission denied
[Link@VM_221_21_centos ~]$ su
Password:
[root@VM_221_21_centos ~]# setfacl -Rm u:Link:rwx /root
[root@VM_221_21_centos ~]# su Link
[Link@VM_221_21_centos root]$ cd /root
[Link@VM_221_21_centos root]$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux