一 Linux的帐号与用户组
1 每个登录的用户至少都会取得两个ID,一个是用户ID简称UID,一个是用户组ID简称GID
2 每一个文件都会有所谓的所有者ID与用户组ID,当我们有要显示文件属性的需求时,系统会依据/etc/passwd与/etc/shadow的内容找到对应的帐号和组名在显示出来
3 /etc/passwd的文件结构每一行代表的是一个帐号,有几行就代表有几个帐号在你的系统中,不过需要注意的是里面有很多的帐号本来就是系统正常运行所需要的,我们可以简称它为系统帐号,这些帐号无法登录系统
4 UID的用户特性
0 当UID是0的时候代表这个帐号是root,当要让某个帐号具有root的权限时修改UID为0即可
1~499 保留给系统使用的ID,属于系统帐号
500~65535 给一般的用户使用(ubuntu系统是从1000开始)
5 一般用户的密码忘记了之后,可以使用root的身份直接修改一般用户的密码即可
如果是root的密码忘记了,我们可以使用开机进入用户维护模式然后修改
二 帐号管理
1 可以使用useradd来新建用户,密码的给予则使用passwd这个命令即可
2 UID的指定数值:系统给予一个帐号UID的时候,它是先参考UID_MIN设置取得最小数值,由/etc/passwd查找最大的UID数值,将两者相比,找出最大的那一个再加一就是新帐号的UID
3 要对一般的帐号新建密码的时候需要使用"passwd 帐号"的格式,使用"passwd"表示修改密码
4 可以使用chage来显示更详细的密码参数
5 可以使用usermod来修改某个帐号的参数
6 通常我们要删除一个帐号的时候,你可以手动将/etc/passwd与/etc/shadow里面的该帐号取消即可,一般而言,如果该帐号只是暂时不启用的话,那么将/etc/shadow里面的帐号失效日期设置为0就可以让该帐号无法使用,如果是真的不想使用了我们可以使用userdel
7 可以使用groupadd来增加一个用户组
8 可以使用groupmod来修改某个用户
三 用户切换
1 以"su -"直接将身份变成root即可,但是这个命令却需要root密码,也就是说如果你要以su变成root的话,你的一般用户就必须要有root的密码才行
2 以"sudo 命令"执行root的命令串,由于sudo需要事先设置妥当,且sudo需要输入用户自己的密码,因此多人共同管理一台主机时,sudo比su来得好
3 单纯使用"su"切换成为root的身份,读取的变量设置方式为non-login shell的方式,这种方式下很多原本的变量不会被改变。如果使用"su -"切换为root的身份的时候,可以使用login shell的方式切换为root
4 如果想要执行一次root的命令,可以利用"su - -c 命令"的方式
5 并非所有人都能够执行sudo,而是仅有/etc/sudoers内的用户才能够执行sudo这个命令
6 sudo的执行流程
1 当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限
2 若用户具有可执行sudo的权限后,便让用户输入用户自己的密码来确认
3 若密码输入成功,便开始执行sudo后面的命令
7 除了root之外的其他帐号,若想要使用sudo执行属于root的权限命令,则root需要使用visudo去改/etc/sudoers,让该用户能够使用全部root的命令功能
8 两次执行sudo的间隔在5分钟内,那么再次执行sudo时就不需要再次输入密码了,如果sudo的操作超过了5分钟,那么就得需要在输入一次密码
四 Linux主机的其它信息
1 如果想要知道目前已经登录在系统上面的用户,可以通过w或who来查询
2 write可以直接将信息传给接收者,write 用户帐号
3 Linux操作系统上面,关于帐号和用户组,其实记录的就是UID/GID的数字而已
4 用户帐号/用户组 与UID/GID的对应,参考/etc/passwd 与/etc/shadow两个文件
5 UID只有0与非0两种,非0则为一般帐号,一般帐号又分为系统帐号和登录者帐号
6 与用户新建,更改,删除有关的命令为 useradd,usermod,uesrdel
与用户组新建,更改,删除有关的命令为 groupadd,groupmod,groupdel
7 系统上面的帐号登录情况查询可以使用w,who,last,lastlog