Unit 5
/etc/passwd //用户信息配置文件
一共七个属性
用户:密码:uid:gid:说明:家目录:用户使用的shell(和系统对话打开的shell)//////etc/shells(系统法shell)
/etc/group  //组信息配置文件
组名:组密码:组ID:组内其它

unit5.6_第1张图片

新建一个用户;linux
mkdir /home/linux  //新建用户家目录
chown linux:linux /home/linux //
vim /etc/passwd    //添加新用户信息
vim /etc/group     //添加组信息
su - linux        //切换用户

unit5.6_第2张图片


如何查看组信息
id student    //查看student组的信息
组信息的一些参数
-u            //用户的uid
-g            //用户初始组id     
-G             //用户所有所在组id
-n            //显示名字而不是id数字
-a            //显示所有信息
unit5.6_第3张图片
修改用户建立时候的默认参数时,需要修改配置文件“/etc/login.defs”

userdel -r linux       //删除linux用户信息
useradd linux          //添加linux用户信息***每次添加用户操作之前,必须先删除用户的所有信息
useradd -g 2000 linux  //添加用户时指定初始组ID为2000时,此ID必须存在,如果不存在,需要先添加一个初始组的ID
groupadd -g 2000 linux //添加初始组ID为2000,添加完成后,再添加指定初始组ID为2000的用户linux。
监控用户信息,组信息
watch -n 1 'tail -n 3 /etc/passwd /etc/group ;echo ========ls /home/'  //监控/etc/passwd文件和/etc/group文件的后三行。  列出/home下的用户名

unit5.6_第4张图片
修改用户的信息的几个参数:
usermod -c “hahaha” linux                    //更改说明为“hahaha”
        -d  /home/linux westos          //指定用户家目录
        -s  /bin/tcsh  linux            //默认与系统交互所使用的shell类型
        -G   ID 组名                    //指定用户附加组

usermod -u 2000 linux             //修改用户UID
usermod -g 72(此ID 必须存在) linux  //修改用户初始组ID
usermod -G 72 linux               //修改用户所有组ID
usermod -G "" linux               //删除用户所有组
usermod -c “说明” linux            // 修改说明
usermod -d /home/westos linux     //修改用户家目录  
usermod -md /home/linux linux     // 更改家目录指定及加目录名称
usermod -s  /bin/csh              //更改shell为/bin/csh
usermod -L innux                   //冻结帐号
usermod -U linux                   //解锁 

  
---------------------------------------------------------
如何在不交互的情况下为用户修改密码
stdin
echo admin|passwd --stdin admin    //此命令就是将输出的admin经过管道符转译后设置为admin用户的密码。

unit5.6_第5张图片----------------------------------------------------------
***用户权力下放***
(1)在系统中,超级用户可以下放普通用户不能执行的操作给普通用户
下放权力的配置文件:/etc/sudoers
(2)格式:
获得权限用户    主机名称=(获得的用户身份)    命令
(3)执行下放权限命令
sudo   命令         //第一次执行sudo需要输入当前用户密码
visudo命令编写/etc/sudoers文件:
##Allow admin to create users on desktop8.example.com(主机名)//以#开头的行为注释,并不执行。
admin(用户名) desktop8.example.com(主机名)=(root)(用户以什么身份执行) /user/bin/useradd(用户所执行的操作)    //主机名的查看用hostname

执行useradd操作时命令行需进行调用。
sudo useradd westos(此为要添加的用户名)
如果想要在执行时不输入密码。则需要再修改/etc/sudoers文件
admin(用户名)   desktop8.example.com(主机名)=(root)(用户以什么身份执行)  NOPASSWD: /user/bin/useradd(用户所执行的操作)                  //表示用户调用sudo命令的时候不需要自己密码

unit5.6_第6张图片




usermod -L    //锁定用户,密码前加!
        -U          //解锁密码
passwd  -l    //锁定用户,密码前加!!。锁定更彻底

***用户认证信息的控制***
chage -d 0 admin  //"0"代表修改密码前所使用的天数。即首次使用admin登陆系统系统会提示修改密码。
chage -d 2 admin  //"2"表示密码的最短使用天数。即两天之后才可更改密码。
chage -m 2 admin  //修改密码的最短有效期为两天,
chage -M 999 admin //修改最长有效期为999天
chage -W 3 admin  //修改警告期为三天。
chage -I 2 admin  //修改非活跃天数为两天。
chage -E "YY-MM--DD" admin //修改密码到期日。
监控用户密码信息
watch -n 1 tail -n 1 /etc/shadow    //**/etc/shadow的最后一行为用户admin的密码信息。用这条命令来监控此密码信息。
 
unit5.6_第7张图片
-----------------------------------------
                  Unit6


一.文件的权限

***查看文件的属性***

ls -l filename(文件名)

执行ls -l /etc 后,会列出如下文件
total 1528
drwxr-xr-x.  3 root root       97 Dec 23 19:39 abrt
-rw-r--r--.  1 root root       18 Dec 23 19:45 adjtime
-rw-r--r--.  1 root root     1518 Jun  7  2013 aliases
-rw-r--r--   1 root root    12288 Dec 23 11:46 aliases.db
drwxr-xr-x.  2 root root     4096 Dec 23 19:43 alternatives
-rw-------.  1 root root      541 Apr 21  2015 anacrontab
-rw-r--r--.  1 root root       55 Sep 16  2014 asound.conf
-rw-r--r--.  1 root root        1 Jun 22  2015 at.deny
drwxr-xr-x.  2 root root       31 Dec 23 19:40 at-spi2
drwxr-x---.  3 root root       41 Dec 23 19:39 audisp
drwxr-x---.  3 root root       79 Dec 23 11:46 audit
-rw-r--r--.  1 root root    12706 Sep 17  2015 autofs.conf
-rw-------.  1 root root      232 Sep 17  2015 autofs_ldap_auth.conf
-rw-r--r--.  1 root root      795 Sep 17  2015 auto.master
drwxr-xr-x.  2 root root        6 Sep 17  2015 auto.master.d
-rw-r--r--.  1 root root      524 Sep 17  2015 auto.misc
-rwxr-xr-x.  1 root root     1260 Sep 17  2015 auto.net
-rwxr-xr-x.  1 root root      687 Sep 17  2015 auto.smb
drwxr-xr-x.  4 root root       94 Dec 23 19:42 avahi


***表示文件类型的参数***
drwxr-xr-x.  3 root root       97 Dec 23 19:39 abrt                            //“d”代表此文件类型为目录
-rw-r--r--.  1 root root       18 Dec 23 19:45 adjti                          //“-”代表文件类型为普通文件
lrwxrwxrwx.  1 root root       22 Dec 23 19:45 chrony.conf -> chrony.conf-found // “l”代表文件类型为连接文件
当然还有其他的一些表示文件类型的参数:
c           //代表字符设备
s           //代表套接字
p           //管道
b           //快设备
l           //连接
d           //目录
-           //普通文件
***文件的权限***
“r”     //读权限
“w”     //写权限
“x”      //可执行权限
d|rwx|r-x|r-x.  3 root root       97 Dec 23 19:39 abrt //此文件类型为目录,所有人权限为“rwx”,
所有组权限为“r-x”,
其他人权限为“r-x”
“3”表示此目录的属性大小,(如果这个文件不是目录的话,那么“3”代表系统记录此文件的次数)
文件所有人为root,
所有组为root,
文件内容属性大小为97,
最近一次修改时间为Dec 23 19:39,
文件名为abrt。
 

***文件所有人所有组的管理***
chown username file/directory      //更改文件的所有人
chown username:groupname file|directory //更改所有人所有组
chown -R username directory            //更改目录本身及里面所有内容的所有人
chgrp -R groupname directory          //更改目录本身及里面所与内容的所有组
这里我们用/mnt目录来操作
为了更好的观察修改所有人和所有组信息,我们可以打开一个新的监控窗口
监控命令:
watch -n 1 ls -lR /mnt
***文件的普通权限***
rw-|r--|r--  //这里的第一个“rw-”代表所有人权限,一般用“u”来代表
            // 第二个“r--”表示文件所有组权限,一般用“g”来代表
            //第三个“r--”表示其他人即第三方权限,一般用“o”来代表
这里的u,g,o分别表示的具体权限:
u:表示文件所有人对文件可以读写
g:表示文件组成员对文件可读
o:表示其他人对文件可读

(1)”r“的权限,对目录和文件的操作含义是不同的
对文件:可以查看文件中的字符,就是读取文件内容
对目录:可以查看目录中的文件信息,但并不能查看目录中文件的具体内容。
(2)“w”的权限,和“r”相似
对文件:可以更改文件内字符。
对目录:可以在目录中添加删除文件,但不能更改文件的具体内容。
(3)“x”权限
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中
(4)字符方式修改文件的权限
具体形式:chmod <+|-|=> file|directory
    //“ 命令   <所有人权限|所有组权限|第三方权限><+|-|=><读|写|可执行> 文件名|目录名”
        chmod u-x file     //给file的所有人去掉x权限
        chmod g+w file     //给file的所有组添加w权限
        chmod u-x,g+w file  //给file的所有人去掉x权限,file所有组添加w权限
        chmod ugo-r file    //file的所有人,所有组,以及其他人都去掉r权限。(该file文件对任何人都不可读)。
        
(5)数字方式修改该文件权限
在linux中 r=4
         w=2
         x=1
文件权限数字表示方式
rwx|rw-|r--
u=rwx=4+2+1=7
g=rw-=4+2+0=6
o=r--=4+0+0=4
那么,该文件的权限用数字表示就为764
chmod  修改后权限值  file
chmod 777 file          //直接将file文件的权限修改为777
表示权限的各个数字的所代表的权限:
0=---
1=--x
2=-w-
3=-wx
4=r--
5=r-x
6=rw-
7=rwx
所以我们通常表示权限的数字范围在000-777,这里不包括特殊权限

***系统默认权限的设定***
从系统存在角度来说,开放的权力越大,系统存在的意义越高
从系统的安全角度来说,开放的权力越少,系统的安全性越高
所以系统在设定新建文件或目录时会去掉一些权限

***修改umask的值***
如果想要永久设定umask的值,需要修改两个配置文件的内容,分别为/etc/bashrc和/etc/profile
 unit5.6_第8张图片

unit5.6_第9张图片

以上两个文件umask设定值必须保持一致。
source /etc/bashrc
source /etc/profile     //重新加载这两个配置文件,让设定的umask值立即生效。


***特殊权限***
(1)suid
  针对二进制可执行文件
  文件内记录的程序产生的进程的所有人为文件所有人,和进程发起人身份无关
  设定方式:
  chmod u+s file
  在linux中这里的s权限代表数字为4
  chmod 4xxx file
(2)sgid
  对文件来说:只针对二进制可执行文件,任何人运行二进制文件,运行时程序产生的进程所有组都是文件的所有组, 和程序发起人组的身份无关。
  对目录:当目录拥有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
  设定方式:
  chmod g+s file|dir
  这里的s权限代表数字2
  chmod 2xxx file|dir

unit5.6_第10张图片

(3)sticky

   t权限:只针对目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除

设定方式:
chmod o+t directory
这里t用数字表示为1
chmod 1777 directory
ps ax -o user,group,comm | grep watch  //过滤watch命令的进程,并提取出该进程的所有人,用户组,命令。
chgrp student /bin/watch //修改组为student
ls -l /bin/watch       //查看此命令的信息