linux权限机制

创建组

#groupadd 组名

#groupadd -g gid 组名

#groupadd -g gid -o 组名

查看组

#cat /etc/group

组名:代表组密码:gid:组员

 

查看一个用户的所属组

#groups 用户名称

 

修改组

#groupmod 参数 组名

-g

-n

-o 

#groupmod -g 2000 grp1

#groupmod -n grp3 grp1

 

给组设置密码

#gpasswd 参数 组名

#gpasswd grp2

 

给组添加账户

# gpasswd -a user10 grp2

Adding user user10 to group grp2

 

# usermod -G grp3 user11  修改用户附属组

 

从组删除账户

# gpasswd -d user10 grp2

 

指定组管理员

# gpasswd -A user12 grp2

 

组密码文件

# cat /etc/gshadow

组名:密码:组管理员:组员

 

删除组

# groupdel 组名

用户的主属组不能删除

 

# chgrp grp3 a.txt

 

权限:用户对文件的操作权限

文件的所有者和所属组

#chown 用户 文件

#chown user2 a.txt

 

#chown {.|:}组 文件

#chown .grp2 a.txt

 

#chown 用户.组 文件

#chown user3:grp3 a.txt

 

-R recoursive 递归修改,修改目录的时候连带目录的所有子文件一起修改

 

ugo权限

u user

g group

o other

 

--- --- ---

     u   g   o

rwx r-x --x

 

r read

w write

x execute

 

权限修改

# chmod 权限 文件

# chmod u-r-w a.txt

# chmod u+r a.txt

# chmod g+w a.txt

# chmod o+x a.txt

# chmod u+w,g-w,o+w a.txt

# chmod a-r a.txt    a表示ugo3个位置

# chmod -r a.txt (建议少用)

 

4=r 2=w 1=x

rwx 4+2+1=7

r-- 4

r-x 4+1=5

745

 

[tom@wing ~]$ chmod 604 a.txt 

[tom@wing ~]$ ll a.txt

-rw----r-- 1 tom tom 44 Nov 25 11:43 a.txt

 

隐藏权限

# lsattr a.txt

# chattr +a a.txt

# chattr -a a.txt

# chattr +i a.txt

# chattr -i a.txt

 

 

高级权限:suid sgid sticky(t) facl

 

suid

#chmod 4755 a.txt

#chmod u+s a.txt

suid只能给命令添加,当给命令添加了suid之后,后面再有人去执行这个命令的时候就会拥有命令操作符所有者的权限

 

命令操作符:命令后面跟的文件

Suid实为提权

 

$cat /etc/shadow

#chmod 4755 `which cat`

$cat /etc/shadow

 

sgid

#chmod 2755 目录

#chmod g+s 目录

sgid只能给目录添加,当你给一个目录添加了sgid之后,后面不管谁来这个目录下创建文件,文件的所属组都会继承目录的所属组

 

sticky(t权限)

#chmod 1777 目录

#chmod o+t 目录

t权限只能给目录添加,当你给一个目录添加了t权限之后,后面所有人在这个目录下不能删除其他人的文件

 

-R 递归修改权限

 

umask 用户掩码

控制用户创建文件和目录的默认权限

用户 目录777 文件666

755     644

 

#umask

0022 root账户默认

0002 普通用户默认

 

先把掩码做取反操作,然后在与默认权限做与运算

或者

按位减

 

facl  扩展ugo权限,可以单独的对某一个用户或者某一组用户设置权限

 

查看facl

#getfacl 文件(目录)

 

设置facl

#setfacl -m u:tom:r  a.txt

#setfacl -m u:tom:4  a.txt

#setfacl -m g:组名:rwx  a.txt

 

-R 递归修改 必须写到-m的前面,可以写到一起

#setfacl -R -m u:tom:4  目录名称

 

设置facl的继承权限

    只能对目录,对目录本身不生效

# setfacl -m d:u:wing:r dir1

 

mask:和权限做与运算,最后的结果是有效权限

# setfacl -m m::rw ccc.txt

 

取消

# setfacl -b ccc.txt

# setfacl -x u:wing: ccc.txt

 

 

纯手动创建账户过程

创建jim账户

1.passwd文件添加一个行jim账户信息

  在shadow文件添加一个行jim账户信息

2.创建家目录

  #cp -r /etc/skel  /home/jim

3.group文件添加一行jim组信息

  在gshadow文件添加一行jim组信息 

4.修改权限

  #chown jim.jim /home/jim

  #chmod 700 /home/jim

5.创建个人邮箱

  #mkdir /var/spool/mail/jim

  #chown jim.mail /var/spool/mail/jim

  #chmod 660 /var/spool/mail/jim

 

/etc/login.defs

 

 

下期预告

打包压缩:

tar

gzip

bzip2

 

软件管理

rpm

yum

源码(编译)

src.rpm源码分发版的软件

.bin .sh .pl .bundle

 

本文出自 “linux菜鸟训练营” 博客,转载请与作者联系!

你可能感兴趣的:(权限,组,ugo,facl)