`

U14Linux的帐号与用户组

 
阅读更多

1.在/etc/group和/etc/gshadow中查找mousegroup:  grep mousegroup /etc/group /etc/gshadow  (grep的使用)

2.其实Linux并不认识你的"帐号名称",他仅仅认识ID.每个登录的用户至少都会取得两个ID,一个是用户ID(UID),另一个是用户组ID(GID).跟用户帐号有关的两个非常重要的文件:一个是管理用户UID/GID重要参数的/etc/passwd.另一个是专门管理密码相关数据的/etc/shadow.

3./etc/passwd的文件结构:每一行都代表一个帐号,有几行就代表有几个帐号在系统中像bin,daemon,adm,nobody这些帐号是系统正常运行所必须的,他们被称作系统帐号.

  例如:  head -n 1 /etc/passwd    执行之后会显示的内容:  root:x:0:0:root:/root:/bin/bash(每一行使用":"分隔,共有七个字段)

                           他们分别为: 帐号名称:密码:UID:GID:用户信息说明:主文件夹(该用户登录时会立刻跑到这个目录中来):Shell

                           对于UID有几点说明:0为系统管理员,1~499保留给系统使用的

4./etc/shadow文件结构:

   例如: head -n 1 /etc/shadow    

   执行之后显示的内容: root:$6$CQBVuQIT$oF1m.fPaVvsQTkHxZEPRrLeScol7Su10ABJdk43tsbyTS1t/lPLDmYWk.xufxn75cnRnBN.vOCzTIUW4gpobP1:15877:0:99999:7::: 

   shadow同样以":"作为分隔符,有9个字段.  

  帐号名称:密码(密文):最近更改密码的日期:密码不可改动的天数:密码需要重新更改的天数:密码需要更改期限前警告天数:密码过期后的宽限时间:帐号失效时间:保留

  参数说明:  密码不可改动的天数:若为0,表示密码随时可以修改.若为20表示,设置密码之后20天之内都无法改变这个密码.

         密码需要重新更改的天数:若为20,表示最近一次更改密码之后在20天内需要再次更改密码.

         密码需要更改期限前警告天数:若为7,表示密码到期之前的7天内,系统会警告该用户.

         密码过期后的宽限时间:密码过期后,当你登录系统时,系统会强制要求必须重新设定密码才能继续使用.

         帐号失效时间:帐号在此字段规定的日期后,将无法再使用.(通常应用在"收费服务"中)

5.帐号的两个文件(/etc/passwd和/etc/shadow)了解完之后,来了解用户组的文件:/etc/group和/etc/gshadow.

6./etc/group的文件结构:每一行代表一个用户组,以":"作为字段的分隔符.有4个字段.

   例如:  head -n 1 /etc/group    执行后的结果为:  root:x:0:root

       用户组名称:用户组密码:GID(我们/etc/passwd第四个字段使用的GID就是这个):此用户组支持的帐号名称(举例来说:若想要让yhw也加入root这个用户组,在第一行的        最后加上“,dmtsai”就行了,使其变成“root:x:0:root,yhw”就可以了)

7.有效用户组:每个用户的/etc/passwd里面的第四列有所谓的GID,那个就是这个用户的初始用户组。也就是说,当该用户登录系统后,立刻就拥有这个用户组的相关权限。

    有几点要注意一下:若一个用户的初始用户组是wjygroup,则在wjygroup的/etc/group的第四个字段不用写入该帐号,因为是初始用户组。若某个用户想加入yhwgroup组,而    yhwgroup不是他的初始用户组,则需要在yhwgroup的/etc/group的第四列加上“,这个用户的帐号名”。

    在读取/写入/执行文件时,针对用户组部分,只要是该用户所在用户组拥有的功能,该用户都拥有。但是,若要新建一个新的文件或目录,新文件的组是哪一个就要看当时的有效用    户组是哪一个了。使用groups命令,查看当时有效用户组,第一个输出的即为有效用户组。有效用户组切换命令:  newgrp 用户组名(newgrp是另外以一个shell来提供这个功能    的,所以想回到原来环境输入exit就行了)。

8./etc/gshadow的文件结构:这个文件以“:”分隔,第二个字段为密码列,如果密码列上为“!”,表示该用户组不具有用户组管理员(无合法密码)。

      例如:  head -n 1 /etc/gshadow    结果为:  root:::root

                          用户组名:密码列:用户组管理员帐号:该用户组支持的帐号

9.新增用户:  useradd 用户名(具体参数查看书P409)

        例如:新增一个用户,指定其UID为700(不存在),指定其初始用户组为mousegroup(已经存在):  useradd -u 700 -g mousegroup yhw

    其实useradd的默认值可以使用useradd -D调出来。  例如:可以新建/etc/skel/www目录,这样新增的用户在他的主文件夹下就会有www这个文件夹。

10.使用useradd新增了用户之后,该帐号是被封锁的,需要使用passwd设置其密码。root更改其他用户密码的方式:  passwd 账号名。  

                                      用户自己更改自己密码的方式(root也是这样):  passwd

        例如:管理yhw的密码,使其具有60天内要更改密码,超期10天密码失效的设置:  passwd -S yhw; passwd -x 60 -i 10 yhw; passwd -S yhw

           让帐号wjy失效:  passwd -l wjy

           让账号wjy重新激活:passwd -u wjy    (当使用passwd -S wjy查看时,若第二字段为P则是激活状态。若为L则为锁定失效状态。)

11.chage -l 账号名(查看该帐号的详细密码信息).    有趣的功能:新建一个名为yhw的帐号,该帐号第一次登录使用默认密码,但必须更改密码后使用新密码才能登录系统使用bash.

        useradd yhw;echo "123" | passwd --stdin yhw; chage -d 0 yhw

12.对账号的信息进行微调使用usermod命令(P416)。删除用户使用userdel 用户名(-r连同主文件夹一起删掉)

    注意:如果想要完整的将某个账号删除,最好可以在执行userdel -r username之前,先执行find / -user username查出整个系统内属于username的文件,再进行删除。

13.finger这个命令可以查阅很多的用户相关信息(P417)。  chfn这个命令可以更改自己的相关信息。(P418)  chsh可以更改shell.  id命令可以查询某人或自己的相关UID/GID    等信息。

14.与对用户的操作很相似,P420对用户组的操作命令有:groupadd(新增用户组),groupmod(微调用户组信息),groupdel(删除用户组)。若某个账号的初始用户组使用了某个用户  组,则该用户组无法删除。

15.如果系统管理员太忙,可以新建用户组管理员(相当于版主)。

      例如:新建一个用户组,名称为mousegroup且用户组交给wjy管理:  groupadd mousegroup; gpasswd mousegroup    gpasswd -A wjy mousegroup

         以wjy登录系统,并且让他加入自己和yhw成为mousegroup成员:  gpasswd -a wjy mousegroup; gpasswd -a yhw mousegroup

16.ACL是Access Control List的缩写,主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置。ACL可以针对单一用户,单一文件或目录进行     r,w,x的权限设置,对于需要特殊权限的使用情况很有帮助。(还没有看,详见P423)

17.用户身份切换命令;su(切换成root,输入su或者su -)(输入exit可以离开su环境)

    例如:执行一个只有root执行的命令,执行后还是原身份:  su - -c "head -n 3 /etc/shadow"(这个必须知道root密码)

      切换成yhw账户:  su -l yhw

    虽然root很方便,但是当我的主机是多人管理时,大家都要使用su切换成root身份,那么大家就都知道root密码了,这样不太好。所以,最好使用sudo.

18.sudo的执行仅仅输入自己的密码就行了。仅有/etc/sudoers内的用户才能执行sudo这个命令。

    例如:以sshd的身份在/tmp下面新建一个名为mysshd的文件:  sudo -u sshd touch /tmp/mysshd

19./etc/sudoers应该用visudo来修改,直接在root下输入visudo即可进入。具体修改详见(P430)。

20.用户的特殊shell与PAM模块没有看,P433.

21.如果想知道目前已登录在系统上的用户,可以输入  w 或者 who来查看。

  另外,若想知道每个帐号的最近登录时间,则可以使用lastlog命令。

22.用户对谈命令:write,mesg,wall。

    例如;我们的Linux上目前有wjy和yhw两人在线,wjy想和yhw说话可以这样:who(查询yhw所在的终端接口),然后执行  write yhw pts/i(查到的接口号),接着输入想说的话     就行了。而yhw会立即接受到消息。但是这样会打断yhw当前的工作。所以可以通过mesg n或者mesg y来设定是否接收消息。使用mesg查看当前的mesg设置。(但是,mesg的     功能对root传来的信息没有抵抗能力)。

    wall “消息们”:可以广播给其他在线用户。

23.用户邮件的使用:mail.

    mail 用户名 -s “标题”输入回车后,就可以输入信件内容了。结束时,最后一行输入一个小数点。

    例如:将主文件夹下的环境变量文件寄给自己:  mail -s "bashrc file content" wjy<~/.bashrc

24.手动新增用户(批量新建,检查工具等)没看。P443

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics