笔记–8.2–用户管理,权限管理

·硬链接,软链接区别

大小 链接数 设备,分区 类型
硬连接 一样大,显示的是本身的大小 会增加 不能跨分区 是一个文件,相同inode号,忘了位置可通过inode号找到源文件
软链接 不一样大,链接文件大小是路径的大小 不会增加 可以跨分区,跨设备 两个文件,不同inode号,像发小广告,忘了源连接,文件就找不到了

软链接格式:ln -s +绝对路径或相对路径(相对于软连接的路径) + 连接文件路径

硬链接格式:ln + 相对源文件路径可以,相对后面连接文件也可以,因为链接不是根据路径找的,而是根据inode号找的+         连接文件

QQ浏览器截屏未命名.png

·一个文件的创建会带来4个文件的修改,还有家目录和邮箱(/var/spool/mail)

·创建用户时的默认信息是调用/etc/default/useradd的,可用cat查看,查看效果等同于  useradd -D 

QQ浏览器截屏未命名.png

·创建用户时,会自动建家目录,而且家目录中还有内容,是因为调用了/etc/skel模板QQ浏览器截屏未命名.png

·/etc/passwd

 用户名:密码:UID:GID:注释信息:家目录:shell类型

·/etc/shadow

 用户名:密码:最后一次修改密码时间:最短密码有效期:最长密码有效期:警告时间:过  期后宽限时间:账户有效期

·/etc/gshadow

 组名:密码:组管理员:组成员QQ浏览器截屏未命名.png

·用户属性修改

   usermod [OPTION] login  

-aG:保留原来的附加组,并添加新的附加组  usermod  -aG root,nodody  laoli

清空附加组:usermod -G     laoli

-u UID:  UID

-g GID:  新基本组

-G :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a 选项

-s SHELL :新的默认SHELL

-c 'COMMENT' :新的注释信息

-d HOME:  新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m 选项

-l login_name:  新的名字

-L: lock 指定用户, /etc/shadow  密码栏的增加 !

-U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 !  拿掉

-e YYYY-MM-DD:  指明用户账号过期日期;

-f INACTIVE: 设定非活动期限

 

例:

修改user1用户的一些相关信息:usermod -u 600 -g 600 -Ga(追加附加组) user2 -s /bin/csh  -dm /tmp/user2

查看用户有几个附加组用groups

扩展技巧:拷贝/etc/skel下的所有目录来恢复家目录

cp -r /etc/skel/. /tmp/user1



·userdel:删除用户userdel [OPTION]… Login:默认不删家目录,是好事,因为只删用户,用户的内容还保留

     -r: 删除用户家目录   

·查看用户相关的ID 信息

 id [OPTION]… [USER]

   -u:显示用户id

   -n:显示用户名(要配合-u使用,显示用户名)

   -g:显示组id号(同样要配合-u使用,显示组名)

   -G:显示附加组

QQ浏览器截屏未命名.png

·su:切换用户

      su UserName :非登录式切换(而不是登陆 ,who am i测试),即不会读取目标用户的配置文件,不改变当前工作目录

    su – UserName :登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

· root su 至其他用户无须密码;非root 用户切换时需要密码

·换个身份执行命令:

      su [-] UserName -c 'COMMAND' wu$  su  – root  -c pwck 一条命令执行三条命令,执行完又退回到wu用户了

·设置口令:passwd

-l: 锁定指定用户    相当于usermod – l(加两个!!双保险,用usermod解也是解一个)

-u: 解锁指定用户    相当于usermod – U(用usermod解也是解一个)

-uf;强行解锁

-e: 强制用户下次登录修改密码,相当于shadow第三项为0

     等同于chage  -d   ·下一次登录强制重设密码chage -d 0 tom

-n mindays:  指定最短使用期限      等同于chage  -m

-x maxdays :最大使用期限        等同于chage  -M

-w warndays :提前多少天开始警告 等同于chage  -W

-i inactivedays :非活动期限;      等同于chage  -i

–stdin :从标准输入接收用户密码;(适合编脚本)

echo " PASSWORD " | passwd –stdin USERNAME

另一种改密码方法:echo  xixi:123.com | chpasswd


·chage修改用户密码策略 [OPTION]… LOGIN(影响 某一个账号)

 -E, 最长密码有效期   chage -E 2016-09-10 tom

 l ,显示密码策略    chage  -l wu等同于getent shadow wu

     -m:最短修改时间

 -M:最长修改时间

 -I:设置宽限时间

 -W:警告时间

 chage -m 0 M 42 W 14 i 7 tom

可以不加任何选项,以交互的方式修改

   chage user1

  

用户相关的其他命令扩展:

  chfn:修改usermod 修改的是(useradd -c 说明信息)

  chsh:修改shell    等同于usermod  -s  /bin/csh  wu

  finger 指定格式修改用户说明信息


·创建组,只改/etc/group/etc/gshadow,不改:/etc/passwd/etc/shadow

    groupadd+选项+组名

    -g GID:  指明GID 号;[GID_MIN, GID_MAX]

    -r:  创建系统组;

   CentOS 6: ID<500   CentOS 7: ID<1000

   Groups wu :查看wu属于哪个组

   Groupmems  -l  -g  group1:查看groups1辅助组里有谁  例groupmems  -l  -g  mail


·更改和查看组成员groupmems [options] [action]

   -gl:查看有哪些用户属于xx

    -a指定用户加入组,追加用户(需要有-g选项) 

   -d从组中删除用户

   -p从组中清除所有成员

   -l显示组成员列表

·groups  [OPTION].[USERNAME]…  查看用户所属组列表

QQ浏览器截屏未命名.png

 

·groupmod:修改组信息

-g:修改组id

-n:修改组名



·groupdel:删除组 groupdel + 组名



·gpasswd:更改组密码,gpasswd选项基本和group mems一样

·gpasswd + 组名 (修改方式是交互式的)

    -a:添加用户到组 gpassed -a user1(用户) group1(组)

    -d:删除组内一个用户

    -A:将用户设置为管理员 gpasswd -A user group1


·newgrp 命令:临时切换基本组;

     如果用户本不属于此组,则需要组密码

QQ浏览器截屏未命名.png


·文件权限

   !!文件:

r:  可使用文件查看类工具获取其内容

w:  可修改其内容

x:  可以把此文件提请内核启动为一个进程

   !!目录:一般都会给rx

r:  可以使用ls 查看此目录中文件列表

w:可在此目录中创建文件,也可删除此目录中的文件如果只有w,没有x,也不能建,删

x:  可以使用ls -l 查看此目录中文件列表,可以cd 进入此

目录读目录内文件内容,没有执行权限,目录内内容读不了

X:只给目录x 权限,不给文件x权限(本身没有x),但如果所有者本来就有x权限,ugo就都有x权限了   Chmod   -R  a+X  /testdir/dir/                                    Chmod   -R  u=rwx  /testdir/dir



·chmod:修改文件权限

   1.授权修改:

chmod u=.. ,g=.. ,o=.. file1

chmod u+.. ,g+.. ,o+.. file1

或者chmod a=.. or a+.. file1

(..rwx代替)

   2.数值修改

chmod 777 file1

   3.参考修改,

参考RFILE文件权限,将FILE 修改为同RFILEchmod –reference f1  f2  参考f1的权限,把f2f1改的一样

 

3.chown:修改文件的属主(只有root 可以改)

·chown 属主 文件名

也可以同时修改属主属组:[chown 属主:属组 文件名]   chown user1group1 file1

   -R:表示递归修改

补充:chown user1: file1          这条命令表示将file1文件的属主属组同时改成user1

    chown :group1 file1         这条命令表示将file1文件的属组改成group1,属主不变



·chgrp:修改文件的属组

-R:递归

chgrp group1 file1

·文件的权限

r: 可以ls

x:可以cd cat目录内文件内容

w:配合x能删能创建

递归给权限时X可以只给文件夹x权限,不给文件夹内文件的x权限

用数字表示权限

rwx111 rw-110

  补充说明:

a.只有root可以修改文件的属主,即使是文件的属主也不能修改文件属主

b.chgrp 文件的属组可以在属主的附加组内转换

 

   权限设置

chgrp sales testfile  设置所属组是sales

chown root:admins testfile  设文件的属组为root属组为admins

chmod u+wx,g-r,o=rx file

hmod -R g+rwX /testdir

chmod 600 file

chown mage testfile

chown  wangcai   f1  只改文件所有者,所属组不变

chown  wangcaif1  属主属组都变

chown  :ftp     f1    只改属组,属主不变

QQ浏览器截屏未命名.png


 

新建文件和目录的默认权限

·umask值  可以用来保留在创建文件权限从最大权限中屏蔽相应权限位,从而得出默认权限 

·默认权限=最大权限-umask        文件:如果所得结果某位存在执行(奇数)权限,则将其权限+1  例子(umask=137   file=666-137=53-1 因为出现奇数,三位都+1,就成了640)  目录:不变

·新建FILE 权限: 666-umask  ,linux默认对文件没有执行权限

·新建DIR 权限: 777-umask

·非特权用户umask002

·root umask 022

·umask: 查看默认umask

·umask #:  设定  umask  u=rw  g=r  o=rw

·umask  137  

·umask S  模式方式显示

·umask p  输出可被调用  实际用法:umask -p >> ~/.bashrc

·默认值:

 umask + 屏蔽权限位,umask 002,以上这种写法只是临时有效,永久生效:全局设置: /etc/bashrc  用户设  置:~/.bashrc


·文件的特殊权限:

1.suid:表示其他用户可以临时拥有[二进制文件]属主的执行权限 ,在属主的权限位的x位变成s

chmod u+s file1,只能作用在二进制程序上

实例:/bin/passwd

拥有suid的文件要特别小心,它可以让其它用户拥有二进制文件的属主的权限

2.sgid作用在二进制程序上,任何人(不一定是该组成员)执行该程序的时候将继承程序所属组的权限。作用在目录上,该目录内新建的文件或目录的所属组自动继承该目录的所属组,其他用户临时继承拥有了[二进制文件或者目录]的组的权限,在属组的权限位的x变成s

chmod g+s file1

实例:对于目录来说有2个用户属于目录的属组,那么他们所建立的文件的属组变为他们所在目录的属组

例:drwxrwsrwx user1 group1 dir1

user2user3都属于group1那么他们所建立的文件的属组都为group1

若是other其他用户,那么需要看other是否又权限,如果有,那么他们所建的文件的属组依然是group1

3.sticky粘滞位只能作用在目录上,具有写权限的目录通常用户可以删除该目录中的任何

文件,无论该文件的权限或拥有权,在目录设置Sticky  位,只有文件的所有者或root以删除该文件,sticky 设置在文件上无意义

实例:/tmp/目录

QQ浏览器截屏未命名.png




·文件的特殊属性:

1. chattr

+i:不能被删除改名,和修改 chattr +i file1

+a:只可以增加,不能删除 chattr +a file1

2.lsattr:查看文件的特定属性

QQ浏览器截屏未命名.png



·ACL访问控制列表:

1.setfaclsetfacl + 选项 + u/g/o : 用户名、组名 : 权限 + 文件

-m:增加

setfacl -m u:user1:rw file1

-x:删除权限

setfacl -x u:user1 file1

-b:清空所有acl权限

setfacl -b file1

-R:递归

setfacl -Rm g:group1:rwX dir1

-M:调用已经写好的文件的acl

1.echo u:user1:rw> acl.txt

2.setfacl -M acl.txt file1

-X:减去调用的文件

u前面加d

setfacl -m d:u:user1:rw dir1

表示在dir1 这个目录下用户user1所创建的文件默认有rw权限

2.mask:限制除所有者和other外的人

包括用acl允许的用户、组和文件本身的属组

setfacl -m mask::rw file1


原创文章,作者:wutianyou,如若转载,请注明出处:http://www.178linux.com/29378