20160802学习笔记

useradd相关补充:

     1.新建一个用户创建时的一些默认权限在/etc/default/useradd配置中

     2.新建用户家目录的过程实际就是将/etc/skel中的所有文件,拷贝到新建用户的/home下,并更改为改用户的用户名

     3.批量新建用户:newusers

    例:先创建一个文本文档,写入要创建于passwd格式相同的文件

        1,vim users.txt

        用户名:密码:uid:gid:描述信息:家目录:shell

        user1:x:501:501::/home/user1:/bin/bash

        user2:x:502:502::/home/user2:/bin/bash

        2,  newusers users.txt

           批量修改用户密码

           1,vim passwd.txt

                user1:user1

                user2:user2

           2, cat passwd.txt | chpasswd

    4.还有其他的一些默认配置在/etc/login.defs

用户属性的一些修改:

    1.usermod:修改用户

        -u: 修改uid

        -g:修改gid

        -G:修改用户的附加组(特别注意,当追加用户的附加组时,要配合a选项,否则直接覆盖用户的附加组)

        -s:修改用户的shell类型

        -d:修改家目录的位置(当新的家目录不存在时,-d选项不会自动创建,要加-m选项,自动创建家目录, 并将原有家目录下的文件移动到新的家目录中)

        -L:锁定用户

        -U:解锁用户

        -e:指定用户过期日期 时间日期的格式是2000-10-10

        -f:修改用户宽限时间

            例:修改user1用户的一些相关信息

                usermod -u 600 -g 600 -Ga(追加附加组) user2 -s /bin/csh -dm /tmp/user2

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

                清空所以附加组:usermod -G "" user1

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

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

    2.userdel:删除用户

        -r:删除家目录

        注意:当删除用户时,也会同时删除这个用户的属组,当这个用户的属组是其他用户的附加组时,这个用户的属组不能被删除

    3.id:显示用户关于id的一些信息

        -u:显示用户id号

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

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

        -G:显示附加组

    4.su:切换用户

        su 用户名:不读取用户的配置信息,切换后保存原有目录不变

        su – 用户名:完全切换

        -c:用其他用户执行一条命令时,用-c 例 su – user1 -c 'pwck'

    5.设置口令:passwd

        -l:锁定用户

        -u:解锁用户    当用户密码为空时,解锁用户默认不允许解锁,要用-f选项强制解锁

        -e:强制用户下次登录时修改口令

        -n:设置最短修改时间

        -x:设置最长修改时间

        -w:设置警告时间

        -i:设置宽限时间

        –stdin:标准输入    例:echo 1234 | passwd –stdin user1

也可以用 echo user1:1234 | chpasswd 修改口令

    6 chage:修改密码策略

        -E:最长密码有效期

        -m:最短修改时间

        -M:最长修改时间

        -I:设置宽限时间

        -W:警告时间

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

          chage user1

     其他命令扩展:

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

     chsh:修改shell

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

组:

     1.groupadd:创建组

       groupadd+选项+组名

          -r:创建系统组

          -g:指明gid

         groups + 用户:查看用户属于哪个组

      2.groupmems:查看组信息(修改辅助组)

         groupmems -l -g 组名

          -a:追加用户(需要有-g选项)   例 groupmems -a user1(用户名) -g group2(组名)

     也可以用id+用户名看附加组信息

     3.groupmod:修改组信息

          -g:修改组id

          -n:修改组名

     4.groupdel:删除组 groupdel + 组名

     5.gpasswd:更改组密码

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

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

          -d:删除组内一个用户

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

    

文件权限:

    1.文件的权限主要有3个对象

        a.属主

        b.属组

        c.其他用户

    2.每个对象对应的权限:

        r w x

      d        rwx        r-x        r-x. 2       root    root       6 Jul 21 11:40 Desktop

    文件类型 属主的权限  属组的权限  其他用户权限   属主    属组

    3.chown:修改文件的属主

    chown 属主 文件名

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

        -R:表示递归修改

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

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

    4.chgrp:修改文件的属组

        -R:递归

        chgrp group1 file1

    5.chmod:修改文件权限

        1.授权修改:

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

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

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

            (..用rwx代替)

        2.数值修改

            chmod 777 file1

        3.参考修改

            chmod –reference=file2 file1

    6.文件的权限

        r: 可以ls

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

        w:配合x能删能创建

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

        用数字表示权限

        rwx:111 rw-:110等

    7.补充说明:

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

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

umask:

     1.umask:这条命令可以查看默认umask值

         对于目录:可以理解成777-umask值=新建目录的默认权限

         对于文件:可以理解成667-umask值=新建文件的默认权限

         因为linux默认对文件没有执行权限

         本质:从最大权限屏蔽掉权限问得出最后权限

          应该是权限位相减,对于文件来说如果原来没有执行权限,那么即使umask为奇数,也不减执行x的权限位

     2.默认值:

          umask + 屏蔽权限位

          例 umask 002

          以上这种写法只是临时有效

          修改.bashrc 可以永久有效,修改后不会立即生效,执行. .bashrc,立即生效

          对于root用户来说,默认的umask=022

          对于其他用户来说,默认的umask=002

          在/etc/profile和/etc/bashrc文件中定义的

          -p:显示umask值

          return:umask 022

          实际用法:umask -p >> ~/.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

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

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

     3.sticky:只能作用在目录上,锁定目录内的其他用户所建文件不被删除

          实例:/tmp/目录

文件的特殊属性:

     1. chattr:

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

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

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

ACL访问控制列表:

     1.setfacl:setfacl + 选项 + 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

作业:

1. 复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限

cp /etc/fstab /var/tmp/

useradd wangcai

groupadd sysadmins

chown wangcai:sysadmins /var/tmp/fstab

chmod u=rw,g=rw,o= /var/tmp/fstab

2.误删除了用户wangcai的家目录,请重建并恢复该用户家目录及相应的权限属性

useradd  wangcai

rm -rvf /home/wangcai

cp -r /etc/skel/. /home/wangcai

chown wangcai:wangcai /home/wangcai

useradd user1

[root@localhost ~]# chmod –reference=/home/user1 /home/wangcai

[root@localhost ~]# chmod –reference=/home/user1/.bashrc /home/wangcai/.bashrc 

[root@localhost ~]# chmod –reference=/home/user1/.gnome2/ /home/wangcai/.gnome2/

[root@localhost ~]# chmod –reference=/home/user1/.mozilla/ /home/wangcai/.mozilla/

[root@localhost ~]# chmod –reference=/home/user1/.bash_logout /home/wangcai/.bash_logout 

[root@localhost ~]# chmod –reference=/home/user1/.bash_profile /home/wangcai/.bash_profile 

3.在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。

groupadd g1

groupadd g2

groupadd g3

mkdir -p /data/testdir

chmod g=rwx /data/testdir

chgrp g1 /data/testdir

chmod g+s /data/testdir

useradd alice

groupmems -a alice -g g2

setfacl -Rm g:g2:rwx /data/testdir

gpasswd -a tom g3

setfacl -Rm g:g3:rx /data/testdir

chmod o= /data/testdir

4.创建组sales,gid 3000,passwd:centos,sales admins:user2

  将用户user1,user2,user3加入到sales辅助组

  希望user1 创建新文件 默认的所属组为sales

  user2将用户user3从sales组移除

  删除sales,user1,user2

  groupadd -g 3000 sales

  gpasswd sales

  centos

  useradd user1

  useradd user2

  useradd user3

  gpasswd -A user2 sales

  gpasswd -a user1 sales

  groupmems -a user2 -g sales

  usermod -aG sales user3

  su user1

  newgrp sales

  exit

  su user2

  gpasswd -d user2 sales

  passwd -d user1 sales

  passwd -d user3 sales

  groupdel sales

5.三种权限,三种特殊,acl,chattr 总结

a.三种权限分为  r w x

 每个目录和文件都有属主、属组、和其他用户。三种所有者分别对应 r w x

 只有r权限:    可以ls

 只有写权限:   无任何意义

 只有执行权限: 可以cd cat

b.三种特殊权限suid、sgid、sticky

  suid:只作用于二进制文件有效,当属组内的其他用户或者other用户有执行权限,那么这些用户就临时拥有了这个二进制文件属主的权限

  sgid:作用于二进制文件和目录,作用类似于suid

  sticky:作用于目录,锁定目录内的文件不被修改。当这个目录的属主属组有rwx权限,也不可以删除目录下other用户所建立的文件

c.acl访问控制列表

一些传统的权限只能限制属主、属组、other,对于制定用户、组就要用acl实现

d.chattr锁定文件不被删除,修改,重命名

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-03 16:05

    总结的很好,如果能举例说明,那就更好了