11 Linux系统12位权限体系
linux权限详解:
用户和文件(目录)的权限联系在一起,是主人?家人?陌生人?
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# su - oldboy
[oldboy@oldboyedu-01 ~]$ whoami
oldboy
[oldboy@oldboyedu-01 ~]$ touch /etc/oldboy.txt
touch: cannot touch `/etc/oldboy.txt': Permission denied
[oldboy@oldboyedu-01 ~]$ ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[oldboy@oldboyedu-01 ~]$ id
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[oldboy@oldboyedu-01 ~]$ id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[oldboy@oldboyedu-01 ~]$ id root
uid=0(root) gid=0(root) groups=0(root)
//可以看出oldboy用户对这个文件属于其他组(陌生人)权限是最后三个r--
权限的计算:
-rw-r--r--
420400400
6 4 4
权限的修改:chmod ===change mode
a.使用数字的方法修改权限
chmod 755 oldboy.txt
b.使用字符
主人 家人 陌生人
user group other
u g o
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod 744 /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rwxr--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod 644 /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod u+x /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rwxr--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod u-x /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod u=x /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
---xr--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod u=rwx /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rwxr--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
给文件添加执行权限方法:
[root@oldboyedu-01 ~]# chmod 644 /etc/hosts
[root@oldboyedu-01 ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 158 Dec 12 08:33 /etc/hosts
[root@oldboyedu-01 ~]# chmod +x /etc/hosts
[root@oldboyedu-01 ~]# chmod ugo+x /etc/hosts
[root@oldboyedu-01 ~]# chmod a+x /etc/hosts
修改文件的所有者和所属的用户组: chown==change owner
[root@oldboyedu-01 ~]# ll /oldboy/oldboy.txt
-rw-r--r-- 1 root root 283 Dec 14 03:50 /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# chown oldboy.oldboy /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# ll /oldboy/oldboy.txt
-rw-r--r-- 1 oldboy oldboy 283 Dec 14 03:50 /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# chown root /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# ll /oldboy/oldboy.txt
-rw-r--r-- 1 root oldboy 283 Dec 14 03:50 /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# chown root.root /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# ll /oldboy/oldboy.txt
-rw-r--r-- 1 root root 283 Dec 14 03:50 /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# chown .oldboy /oldboy/oldboy.txt
[root@oldboyedu-01 ~]# ll /oldboy/oldboy.txt
-rw-r--r-- 1 root oldboy 283 Dec 14 03:50 /oldboy/oldboy.txt
对于文件来说rwx的含义:
[root@oldboyedu-01 ~]# mkdir -p /oldboy/ //环境设置
[root@oldboyedu-01 ~]# echo -e 'hostname\npwd' >/oldboy/alex.sh
[root@oldboyedu-01 ~]# cat /oldboy/alex.sh
hostname
pwd
[root@oldboyedu-01 ~]# chown oldboy.oldboy /oldboy/alex.sh
[root@oldboyedu-01 ~]# ll /oldboy/alex.sh
-rw-r--r-- 1 oldboy oldboy 13 Dec 14 07:44 /oldboy/alex.sh
[root@oldboyedu-01 ~]# chmod u=r /oldboy/alex.sh //root下修改权限
[root@oldboyedu-01 ~]# ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Dec 14 07:44 /oldboy/alex.sh
[oldboy@oldboyedu-01 ~]$ whoami
oldboy
[oldboy@oldboyedu-01 ~]$ ll /oldboy/alex.sh
-r--r--r-- 1 oldboy oldboy 13 Dec 14 07:44 /oldboy/alex.sh
[oldboy@oldboyedu-01 ~]$ echo "ls -ld /etc" >>/oldboy/alex.sh //oldboy用户下验证:权限不够
-bash: /oldboy/alex.sh: Permission denied
小结:
1.r读取文件内容
2.w修改文件的内容,但是需要r的配合
没有r配合强制修改退出,会清空文件的内容
3.x权限执行,需要r权限的配合
对于目录来说rwx的含义:
目录的权限:
r 查看目录里面的内容, ls
w 可以在目录里面创建 删除 重命名文件
x 可以进入(cd)到这个目录
[root@oldboyedu-01 ~]# mkdir -p /oldboy/alexdir //环境设置
[root@oldboyedu-01 ~]# chown oldboy.oldboy /oldboy/alexdir
[root@oldboyedu-01 ~]# touch /oldboy/alexdir/luffy{01..5}.txt
[root@oldboyedu-01 ~]# chmod u=r /oldboy/alexdir/ //root下修改权限
[root@oldboyedu-01 ~]# ll -d /oldboy/alexdir/
dr--r-xr-x 2 oldboy oldboy 4096 Dec 14 08:03 /oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ ls -l /oldboy/alexdir/ //oldboy用户下验证:权限不够
ls: cannot access /oldboy/alexdir/luffy02.txt: Permission denied
ls: cannot access /oldboy/alexdir/luffy04.txt: Permission denied
ls: cannot access /oldboy/alexdir/luffy05.txt: Permission denied
ls: cannot access /oldboy/alexdir/luffy01.txt: Permission denied
ls: cannot access /oldboy/alexdir/luffy03.txt: Permission denied
total 0
-????????? ? ? ? ? ? luffy01.txt
-????????? ? ? ? ? ? luffy02.txt
-????????? ? ? ? ? ? luffy03.txt
-????????? ? ? ? ? ? luffy04.txt
-????????? ? ? ? ? ? luffy05.txt
[oldboy@oldboyedu-01 ~]$ ls -d /oldboy/alexdir/
/oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ stat /oldboy/alexdir/
File: `/oldboy/alexdir/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 420729 Links: 2
Access: (0455/dr--r-xr-x) Uid: ( 500/ oldboy) Gid: ( 500/ oldboy)
Access: 2017-12-14 08:09:36.227596588 +0800
Modify: 2017-12-14 08:03:42.573597586 +0800
Change: 2017-12-14 08:09:29.725607296 +0800
[root@oldboyedu-01 ~]# chmod u=rx /oldboy/alexdir/ //root下修改权限
[root@oldboyedu-01 ~]# ll -d /oldboy/alexdir/
dr-xr-xr-x 2 oldboy oldboy 4096 Dec 14 08:03 /oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ ls -l /oldboy/alexdir/ //oldboy用户下验证:权限不够
total 0
-rw-r--r-- 1 root root 0 Dec 14 08:03 luffy01.txt
-rw-r--r-- 1 root root 0 Dec 14 08:03 luffy02.txt
-rw-r--r-- 1 root root 0 Dec 14 08:03 luffy03.txt
-rw-r--r-- 1 root root 0 Dec 14 08:03 luffy04.txt
-rw-r--r-- 1 root root 0 Dec 14 08:03 luffy05.txt
小结:
1.对于目录来说 r表示 查看目录里面内容的权限,ls 需要x配合
2.没有x权限,那么显示的时候文件的属性无法显示
[root@oldboyedu-01 ~]# chmod u=rx /oldboy/alexdir/ //root下修改权限
[root@oldboyedu-01 ~]# ll -d /oldboy/alexdir/
dr-xr-xr-x 2 oldboy oldboy 4096 Dec 14 08:03 /oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ \rm -rf /oldboy/alexdir/luffy01.txt //oldboy用户下验证:权限不够
rm: cannot remove `/oldboy/alexdir/luffy01.txt': Permission denied
[root@oldboyedu-01 ~]# chmod u=wx /oldboy/alexdir/ //root下修改权限
[root@oldboyedu-01 ~]# ll -d /oldboy/alexdir/
d-wxr-xr-x 2 oldboy oldboy 4096 Dec 14 08:03 /oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ \rm -rf /oldboy/alexdir/luffy01.txt //oldboy用户下验证:权限可以
[oldboy@oldboyedu-01 ~]$ touch /oldboy/alexdir/test.txt
小结:
1.w表示可以在目录中创建 删除文件 重命名文件权限
2.w无法删除 创建文件,w需要x配合
[root@oldboyedu-01 ~]# chmod u=x /oldboy/alexdir/ //root下修改权限
[root@oldboyedu-01 ~]# ll -d /oldboy/alexdir/
d--xr-xr-x 2 oldboy oldboy 4096 Dec 14 08:33 /oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ ls -d /oldboy/alexdir/
/oldboy/alexdir/
[oldboy@oldboyedu-01 ~]$ ls -l /oldboy/alexdir/ //oldboy用户下验证:权限可以
ls: cannot open directory /oldboy/alexdir/: Permission denied
大总结:
文件 目录
r 读取文件的内容 查看目录的内容(需要x权限)
w 修改文件的内容(需要r) 在目录下面创建 删除文件(需要x权限)
x 执行文件(需要r) 进入到目录的权限(cd)
[root@oldboyedu-01 ~]# ll -d /etc/
drwxr-xr-x. 78 root root 4096 Dec 14 08:51 /etc/
[root@oldboyedu-01 ~]# ll /etc/oldboy.txt
-rwxrwxrwx 1 root root 0 Dec 14 08:51 /etc/oldboy.txt
[oldboy@oldboyedu-01 ~]$ \rm -rf /etc/oldboy.txt
rm: cannot remove `/etc/oldboy.txt': Permission denied
注意:删除一个文件,要看你对这个文所在的目录是否有wx权限!
网站权限--通过控制权限让网站安全
系统默认权限:
a.对于文件来说默认权限最好:rw-r--r-- 644
b.对于目录来说默认权限最好:rwxr-xr-x 755
eg:blog.oldboyedu.com
网址程序存放在/app/blog目录下面
0.网站需要被运行起来,通过一个傀儡用户运行起来的www
1.blog目录下面
file 644 dir 755 root root
2.blog目录下面
/app/blog/ndd.jpg
/app/blog/snow.jpg
/app/blog/budongde.avi
/app/blog/上船/lwang.jpg
/app/blog/上船/lzhang.avi
blog/上船 file644 dir755 www www
小结:
1.网站是通过傀儡用户运行的www
2.网站用户上传目录,file 644 dir 755 www www
3.除了上传目录之外 file 644 dir 755 root root
linux系统默认权限控制命令:umask
文件最大权限:666
目录最大权限:777
//根据umask计算文件的默认权限
[root@oldboyedu-01 ~]# umask
0022
[root@oldboyedu-01 ~]# touch umask.txt
[root@oldboyedu-01 ~]# mkdir umaskdir
[root@oldboyedu-01 ~]# ll umask.txt
-rw-r--r-- 1 root root 0 Dec 14 09:12 umask.txt //默认644 ==》666-022
[root@oldboyedu-01 ~]# ll -d umaskdir/
drwxr-xr-x 2 root root 4096 Dec 14 09:12 umaskdir/ //默认755 ==》777-022
//修改默认权限值
[root@oldboyedu-01 ~]# umask 032
[root@oldboyedu-01 ~]# umask
0032
[root@oldboyedu-01 ~]# touch umask032.txt
[root@oldboyedu-01 ~]# ll -d umask032.txt
-rw-r--r-- 1 root root 0 Dec 14 09:21 umask032.txt //注意奇数位加1:默认644 ==》666-032 +010
[root@oldboyedu-01 ~]# mkdir umaskdir032
[root@oldboyedu-01 ~]# ll -d umaskdir032/
drwxr--r-x 2 root root 4096 Dec 14 09:21 umaskdir032/ //直接计算:默认745 ==》777-032
[root@oldboyedu-01 ~]# vim /etc/profile //永久修改umask
文件系统属性(文件属性),和磁盘有关。
1.lsattr--查看隐藏的权限(属性)
[root@oldboyedu-01 ~]# lsattr
-------------e- ./install.log
-------------e- ./right.txt
-------------e- ./error.txt
-------------e- ./anaconda-ks.cfg
[root@oldboyedu-01 ~]# lsattr test.txt
-------------e- test.txt
2.chattr--修改隐藏的权限(属性)
[root@oldboyedu-01 ~]# chattr +a test.txt //a:append 赋予该文件只能被追加权限
[root@oldboyedu-01 ~]# lsattr test.txt
-----a-------e- test.txt
[root@oldboyedu-01 ~]# echo "append..." >> test.txt
[root@oldboyedu-01 ~]# echo "append..." > test.txt
-bash: test.txt: Operation not permitted
[root@oldboyedu-01 ~]# \rm test.txt
rm: cannot remove `test.txt': Operation not permitted
[root@oldboyedu-01 ~]# mv test.txt /
mv: cannot move `test.txt' to `/test.txt': Operation not permitted
[root@oldboyedu-01 ~]# chattr -a test.txt //去除追加权限
[root@oldboyedu-01 ~]# lsattr test.txt
-------------e- test.txt
[root@oldboyedu-01 ~]# chattr +i test.txt //i:immutable 赋予该文件不可修改权限
[root@oldboyedu-01 ~]# lsattr test.txt
----i--------e- test.txt
[root@oldboyedu-01 ~]# echo "append..." >> test.txt
-bash: test.txt: Permission denied
[root@oldboyedu-01 ~]# \rm test.txt
rm: cannot remove `test.txt': Operation not permitted
特殊权限设置
1.suid(setuid) sgid(很少用)
作用:运行某个命令时相当于这个命令的所有者(root)
风险:所有用户运行命令时都相当于是root
passwd命令
[root@oldboyedu-01 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
[oldboy@oldboyedu-01 ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied
[oldboy@oldboyedu-01 ~]$ ll /var/log/messages
-rw-------. 1 root root 548595 Dec 14 08:50 /var/log/messages
[root@oldboyedu-01 ~]# ll /bin/cat
-rwxr-xr-x. 1 root root 48568 Mar 23 2017 /bin/cat
[root@oldboyedu-01 ~]# chmod u+s /bin/cat //设置特殊权限,或者chmod 4755 /bin/cat
[root@oldboyedu-01 ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 48568 Mar 23 2017 /bin/cat
[oldboy@oldboyedu-01 ~]$ cat /var/log/messages //有权限了
[oldboy@oldboyedu-01 ~]$ ll /var/log/messages
-rw-------. 1 root root 548595 Dec 14 08:50 /var/log/messages
[root@oldboyedu-01 ~]# stat /bin/cat
File: `/bin/cat'
Size: 48568 Blocks: 96 IO Block: 4096 regular file
Device: 803h/2051d Inode: 3553 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) //4755
Access: 2017-12-14 09:51:16.684598894 +0800
Modify: 2017-03-23 02:52:45.000000000 +0800
Change: 2017-12-14 09:54:01.154594094 +0800
2.sticky粘滞位1777 /tmp/目录
作用:
(1)任何人都可以在这个目录里创建文件(原来权限是777)
(2)每个人只能管理自己的文件,其他人(用户)的处理不了。
[root@oldboyedu-01 ~]# ll -d /tmp/
drwxrwxrwt. 3 root root 4096 Dec 14 03:45 /tmp/
[root@oldboyedu-01 ~]# stat /tmp/
File: `/tmp/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 390146 Links: 3
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) //1777
Access: 2017-12-14 10:00:24.481591134 +0800
Modify: 2017-12-14 03:45:06.000000000 +0800
Change: 2017-12-14 03:45:11.863603807 +0800
浙公网安备 33010602011771号