美文网首页
Linux-用户管理-权限管理

Linux-用户管理-权限管理

作者: 徐弱西 | 来源:发表于2019-08-02 20:14 被阅读0次

useradd abc1;echo $RANDOM|md5sum|cut -c 1-10|tee /root/pass.txt|passwd --stdin abc001

约定:

0:超级用户
1-200:系统用户(系统创建出来的)
201-999:系统用户(自建)
1000+:普通用户

普通用户最小uid
UID_MIN 1000
最大uid
UID_MAX 60000

系统用户最下uid
SYS_UID_MIN 201
最大uid
SYS_UID_MAX 999

基本权限

1.权限管理

用来约束用户对系统的操作

权限:
    r(read):读       4
    w(write):写      2
    x(exec):执行      1
    -:没有权限          0

[root@oldboyedu ~]# ll
文件类型 权限 selinux 硬链接数 文件的属主 文件的属组

  •                           rwx------   .           1            odb            edu         1.txt
    

d rwxrwxrwx . 2 root root 123.txt

d:目录
c:字符设备
b:块设备
l:软链接文件
p:管道文件
s:socket文件(套接字文件)
-:普通文件

rwx与ugo(用户,组,其他用户)的关系
u(user):用户
g(group):组
o(other):其它用户

用户权限相关命令:
chmod:修改权限位上的权限
+:增加权限
u+x
g+x
o+x
a+x

-:删除权限
u-x
g-x
o-x
a-x

=:赋值权限
u=rwx
g=x
o=w

数字授权 :
[root@oldboyedu ~]# chmod 712 456.txt

chown:修改属主,属组权限
[root@oldboyedu ~]# chown root.zls100 /opt/zls1.txt 
[root@oldboyedu ~]# ll /opt/zls1.txt
-rw-rw--wx 1 root zls100 5 Jul  6 20:26 /opt/zls1.txt



[root@oldboyedu ~]# chown zls099:zls100 /opt/zls1.txt 
[root@oldboyedu ~]# ll /opt/zls1.txt
-rw-rw--wx 1 zls099 zls100 5 Jul  6 20:26 /opt/zls1.txt


[root@oldboyedu ~]# chown zls098 /opt/zls1.txt 
[root@oldboyedu ~]# chown zls098 /opt/zls1.txt 
[root@oldboyedu ~]# ll /opt/zls1.txt
-rw-rw--wx 1 zls098 zls100 5 Jul  6 20:26 /opt/zls1.txt


[root@oldboyedu ~]# chown .zls097 /opt/zls1.txt 
[root@oldboyedu ~]# ll /opt/zls1.txt
-rw-rw--wx 1 zls098 zls097 5 Jul  6 20:26 /opt/zls1.txt


[root@oldboyedu ~]# chown :zls096 /opt/zls1.txt 
[root@oldboyedu ~]# ll /opt/zls1.txt
-rw-rw--wx 1 zls098 zls096 5 Jul  6 20:26 /opt/zls1.txt


stat -c %a filename

2.权限对文件的限制

文件只有w的权限时,可以写文件,但是用vim编辑时候看不见原来的内容,要强制保存 :wq! 会覆盖原来的内容

只是对文件的内容有限制
只能对文件内容:读取,写入,执行

文件只有r(read):只能读取内容,不能写入,不能执行
[zls100@oldboyedu ~]$ cat /opt/zls.txt 
ifconfig
[zls100@oldboyedu ~]$ echo 123 > /opt/zls.txt 
-bash: /opt/zls.txt: Permission denied
[zls100@oldboyedu ~]$ /opt/zls.txt 
-bash: /opt/zls.txt: Permission denied


文件只有w(write):不能读取文件内容,可以写入,不可以执行
[zls100@oldboyedu ~]$ cat /opt/zls.txt 
cat: /opt/zls.txt: Permission denied
[zls100@oldboyedu ~]$ echo date >> /opt/zls.txt 
[zls100@oldboyedu ~]$ vim /opt/zls.txt 
[zls100@oldboyedu ~]$ /opt/zls.txt
-bash: /opt/zls.txt: Permission denied


文件只有x(exec):不能读取文件内容,不能写入内容,也不能执行(普通用户不能执行,root可以)
[zls100@oldboyedu ~]$ cat /opt/zls.txt 
cat: /opt/zls.txt: Permission denied
[zls100@oldboyedu ~]$ echo date >> /opt/zls.txt 
-bash: /opt/zls.txt: Permission denied
[zls100@oldboyedu ~]$ /opt/zls.txt 
bash: /opt/zls.txt: Permission denied

wx:可以看,可以写入,不能执行(普通用户:必须配合r)
[zls100@oldboyedu opt]$ cat /opt/zls1.txt 
[zls100@oldboyedu opt]$ echo date > /opt/zls1.txt 
[zls100@oldboyedu opt]$ cat /opt/zls1.txt
date
[zls100@oldboyedu opt]$ /opt/zls1.txt


权限组合:
如果普通用户想要执行:rx
如果普通用户想要编辑:rw
可读,可写,可执行:rwx

常用组合:

3.权限对目录的影响

如果目录只有r权限:只能看见目录下的文件,不能看到文件属性,不能进入目录,不能创建删除文件。
[zls100@oldboyedu ~]$ ll /opt/
ls: cannot access /opt/zls.txt: Permission denied
total 0
-????????? ? ? ? ?            ? zls.txt
[zls100@oldboyedu ~]$ ls /opt/
ls: cannot access /opt/zls.txt: Permission denied
zls.txt
[zls100@oldboyedu ~]$ cd /opt/
-bash: cd: /opt/: Permission denied
[zls100@oldboyedu ~]$ touch /opt/zls1.txt
touch: cannot touch ‘/opt/zls1.txt’: Permission denied
[zls100@oldboyedu ~]$ rm -fr /opt/zls.txt 
rm: cannot remove ‘/opt/zls.txt’: Permission denied


目录只有一个w权限:啥都不能干
[zls100@oldboyedu ~]$ ll /opt/
ls: cannot open directory /opt/: Permission denied
[zls100@oldboyedu ~]$ cd /opt/
-bash: cd: /opt/: Permission denied
[zls100@oldboyedu ~]$ rm -f /opt/zls.txt
rm: cannot remove ‘/opt/zls.txt’: Permission denied
[zls100@oldboyedu ~]$ touch /opt/zls1.txt
touch: cannot touch ‘/opt/zls1.txt’: Permission denied


目录只有一个x权限:只能进入目录,不能看,不能删除,不能创建
[zls100@oldboyedu ~]$ ll /opt/
ls: cannot open directory /opt/: Permission denied
[zls100@oldboyedu ~]$ rm -f /opt/zls.txt
rm: cannot remove ‘/opt/zls.txt’: Permission denied
[zls100@oldboyedu ~]$ touch /opt/zls1.txt
touch: cannot touch ‘/opt/zls1.txt’: Permission denied
[zls100@oldboyedu ~]$ cd /opt/


权限组合:

rx:可以查看,可以进入,但是不能删除 不能创建
[zls100@oldboyedu opt]$ ll /opt/
total 4
---------- 1 root root 9 Jul  6 19:47 zls.txt
[zls100@oldboyedu opt]$ cd /opt/
[zls100@oldboyedu opt]$ ll
total 4
---------- 1 root root 9 Jul  6 19:47 zls.txt
[zls100@oldboyedu opt]$ rm -f zls.txt 
rm: cannot remove ‘zls.txt’: Permission denied
[zls100@oldboyedu opt]$ touch zls1.txt
touch: cannot touch ‘zls1.txt’: Permission denied


rw:和单独的r一样
[zls100@oldboyedu opt]$ ll /opt/
ls: cannot access /opt/zls.txt: Permission denied
total 0
-????????? ? ? ? ?            ? zls.txt
[zls100@oldboyedu opt]$ cd /opt/
-bash: cd: /opt/: Permission denied
[zls100@oldboyedu opt]$ rm -f /opt/zls.txt 
rm: cannot remove ‘/opt/zls.txt’: Permission denied
[zls100@oldboyedu opt]$ touch /opt/zls1.txt
touch: cannot touch ‘/opt/zls1.txt’: Permission denied

wx:可以进入,可以删除,可以创建,不能查看
[zls100@oldboyedu opt]$ cd /opt/
[zls100@oldboyedu opt]$ ll
ls: cannot open directory .: Permission denied
[zls100@oldboyedu opt]$ rm -f zls.txt
[zls100@oldboyedu opt]$ touch zls1.txt

rwx:可读,可写,可执行
[zls100@oldboyedu opt]$ ll /opt/
total 0
-rw-rw-r-- 1 zls100 zls100 0 Jul  6 20:22 zls1.txt
[zls100@oldboyedu opt]$ cd
[zls100@oldboyedu ~]$ cd /opt/
[zls100@oldboyedu opt]$ touch zls.txt
[zls100@oldboyedu opt]$ rm -f zls.txt 

目录常用组合:rx 和 rwx

特殊权限-------------------------------------------------

[root@oldboyedu ~]# ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd

s出现在u(用户权限位):
SetUID:

修改用户密码:passwd
/etc/passwd
-rw-r--r--. 1 root root 10512 Oct 1 2019 /etc/passwd

/etc/shadow
----------. 1 root root 7831 Jul  6 18:18 /etc/shadow
$6$k2B1MAIL$1VE2ge32wvbLbX0vlf8krhc4Tvh8bNbnE9IHT2VHFJNhsS2xpDcYaISk1Zy.lOG1pLUTvg0.mJvAkOmJ.mIl1.
$6$ZcBjoLY4$Hwdki6gn7VD3nC7f.bzyLFHGgRuIfI3z41ql7mha3YMWhW21U2/JRIkgb.M0C1tqEsFTUcLOR0lgdu1.D7ves.

1)setuid的作用:
    普通用户执行具有setuid权限的命令时,会以该命令的属主身份去执行
    
2)setuid的权限是:4000
3)授权方式:
    ugo方式:
    chmod u+s filename
    
    number方式:
    chmod 4000 filename

注意:如果文件用户权限位上原本没有执行权限,则setuid:S
      如果文件用户权限位上原本有执行权限,则setuid:s

[root@oldboyedu ~]# ll /bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
1)setgid的作用:
主要是做共享目录。
将目录设置为SGID后,如果在该目录下创建文件,都将与该目录的所属组保持一致

2)setgid的权限是:2000
3)授权方式:
    ugo方式:
    chmod g+s dirname
    
    number方式:
    chmod 2000 dirname
    
注意:如果文件用户组权限位上原本没有执行权限,则setgid:S
       如果文件用户组权限位上原本有执行权限,则setgid:s 

[root@oldboyedu ~]# ll -d /tmp/
drwxrwxrwt. 14 root root 20480 Jul 6 20:27 /tmp/

1)粘滞位(sbit)的作用:
普通用户在具有粘滞位的目录下创建文件,只有用户自己能操作,其他用户一概无法操作,即使上级目录有rwx权限

2)sbit的权限是:1000

3)授权方式:
    ugo方式:
    chmod o+t dirname
    
    number方式:
    chmod 1000 dirname
    
注意:如果文件其他用户权限位上原本没有执行权限,则sbit:T
      如果文件其他用户权限位上原本有执行权限,则sbit:t

问题1:
[root@oldboyedu ~]# useradd alex -g zls100
[root@oldboyedu ~]# ll /opt/zls.txt
-rwxr---w- 1 zls100 zls100 0 Jul 6 23:05 /opt/zls.txt


权限的属性:

chattr:
+:增加权限
-:取消权限
=:赋值权限

i:锁定文件,不可移动,不可修改,不可删除,可以执行
a(append):锁定文件,不可移动,不可删除,可以追加内容,可以执行

lsattr:查看特殊权限

[root@oldboyedu ~]# chattr +i /etc/passwd
[root@oldboyedu ~]#
[root@oldboyedu ~]# rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted
[root@oldboyedu ~]# mv /etc/passwd /tmp/
mv: cannot move ‘/etc/passwd’ to ‘/tmp/passwd’: Operation not permitted
[root@oldboyedu ~]# rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted

[root@oldboyedu ~]# lsattr /etc/passwd
----i----------- /etc/passwd

[root@oldboyedu ~]# chattr -i /etc/passwd
[root@oldboyedu ~]# lsattr /etc/passwd
---------------- /etc/passwd

------------------------------------------------------------------umask--------------------------------------------
1.umask的作用:
控制文件或者目录创建的初始权限

2.umask的计算
#查看umask:
[root@oldboyedu ~]# umask
0022

目录权限:755
777-022=755

文件权限:
666-022=644

----------------------------

[root@oldboyedu ~]# umask 046
[root@oldboyedu ~]# umask 
0046

目录:731
777-046=731

文件:620
666-046=620

------------------------------

[root@oldboyedu ~]# umask 
0023

目录:754
777-023=754

文件:644
666

-013

664


-------------------------------

[root@oldboyedu ~]# umask 
0035

目录:742
777-035=742

文件:642
666

-035

642

注意:umask计算时,目录使用777-umask,目录一直不受到umask影响
umask计算时,文件使用666-umask,当umask权限位上含有奇数时,文件权限是奇数位减完+1

umask影响的范围:
touch
mkdir 不指定参数的情况下
vim
vi

useradd
vsftp
samba

if [ $UID -gt 199 ] && [ "/usr/bin/id -gn" = "/usr/bin/id -un" ]; then
umask 002
else
umask 022
fi

输入、输出、管道符-

重定向:将原本输出在屏幕上的内容,输出到指定文件或设备中

文件描述符:
0 -> /dev/pts/0 :stdin 标准输入
1 -> /dev/pts/0 :stdout标准输出
2 -> /dev/pts/0 :stderr错误输出
3 -> /var/log/messages :文件名

输出重定向:
1>:标准输出重定向(会覆盖文件)
1>>:标准输出追加重定向(不会覆盖文件)
2>:错误输出重定向(会覆盖文件)
2>>:错误输出追加重定向(不会覆盖文件)
0<<:标准输入重定向

[zls100@oldboyedu ~]$ find /etc/ -name '*.conf' > /tmp/conf4.txt 2>&1

[zls100@oldboyedu ~]$ find /etc/ -name '*.conf' &> /tmp/conf5.txt

|:管道符,连接多条命令,管道符左边的命令将标准输出,输出给管道符右边的命令,右边的命令,标准输入接收

相关文章

网友评论

      本文标题:Linux-用户管理-权限管理

      本文链接:https://www.haomeiwen.com/subject/dqtldctx.html