linux 自学笔记 (九) linux用户管理

14 linux用户管理

14.1用户管理配置文件

配置文件

用户信息文件:  /etc/passwd
               文件格式:每一行即一个用户信息,有多少行,就有多少用户。
               行格式:   root     :       x       :              0                :           0             :         root       :     /root      :    /bin/bash
                  含义: 用户名:密码位:用户标识符UID:组标识符GID:解释性描述:宿主目录:命令解释器
                    linux用户分为3类:超级用户(root,用户标识符UID=0),只要将一个用户的UID设置为0,这个用户就有和root相同的权限。
                                                      普通用户 (UID 500-60000)
                                                     伪用户     (UID 1-499)
                       伪用户
                                1.伪用户与系统和程序服务相关
                                           bin,daemon,shutdown,halt等,任何 linux系统默认都有这些伪用户
                                           mail,news,game,apsche,ftp,mysql及sshd等,与linux系统的进程相关
                                2.伪用户通常不需要或无法登录系统
                                3.可以没有宿主目录
                   用户组特点: 每个用户都至少属于一个用户组
                                           每个用户组可以包含多个用户
                                           同一用户组的用户享有该用户组共有的权限
                           密码位 是由md5生成

密码文件: /etc/shadow
               文件格式:每一行即一个用户信息,有多少行,就有多少用户。      
               行格式:   root     : $1$SFzhoxd$aatxtpowlkPrI515lh9lu1  :               15793                         :                    0                     :               99999                :          7           :                         :                  :
                  含义:  用户名:                 加密的秘密                                :最后一次修改时间(天数):最小时间间隔(天数):最大时间间隔(天数): 警报时间  :帐号休闲时间:失效时间:标志
                                  说明:1.加入 /etc/shadow中的 加密的秘密删除了,则该用户不需要密码即可登录。
                                              2.最后一次修改时间,是按 进行计算,起始天是按Unix的诞生日1970-1-1开始计算.
                                              3. 最大时间间隔之内,必须更改密码,否则无法登陆。怕遗忘可以通过 警报时间来提前提醒
                                              4.密码其实是先写入 /etc/passwd ,然后再用 pwconv 将命令转移到 /etc/shadow,我可以用 pwunconv 将密码转移回中/etc/passwd
       


用户组文件:     /etc/group

文件格式:每一行即一个用户信息,有多少行,就有多少用户。
               行格式:   root     :       x       :      0     :         root       
                  含义:  用户名:密码位:GID:组内用户列表


添加一个组: groupadd  newgroup
                           groupadd  -g   888 newgroup           (-g 表示设置 GID
删除一个组:groupdel  组名
修改用户组信息; groupmod   


用户组密码文件:/etc/gshadow


用户配置文件:/etc/login.defs,    /etc/default/useradd


新用户信息文件:/etc/skel


登录文件:       /etc/issue (登录前显示的信息,一般为系统版本介绍,最好删除系统版本信息。可以只显示欢迎界面)
                           /etc/motd (登录后显示的信息,可以用于 显示一些公告通知) 

14.2用户管理命令

用户密码管理的 /etc/shadow和/etc/gshadow一般只有root有权更改, 为什么普通用户可以更改自己的密码?
答案:关键在于/usr/bin/passwd的文件权限如下:
                                                -rw sr-xr-x 1 root root 22984 Jan  6  2007 /usr/bin/passwd
                                SetUID当一个可执行程序具有SetUID权限,用户执行该程序时,将以这个程序所有者的身份执行。
将一个可执行程序设置为SetUID,有两种方式:chmod u+s
                                                                         chmod   4755    %(mod的 4代表 SetUID)
当一个不可执行的程序(如txt文档),当设置 SetUID,该位置会变成 S,用于表示警告

想雷同的命令有 SetGID
将一个可执行程序设置为 SetGID,有两种方式:chmod g+s
                                                                         chmod   2755    %(mod的 2代表 SetGID)
                                                                         chmod   6755    %(mod的 2+4=6代表 SetUID+ SetGID)

查找系统的SetUID文件: find /  -perm  -4000 -o  -perm  -2000

而其他人是有 粘着位设置 t
                              drwxrwxrw t 18 root root 4096 Apr 11 15:03 /tmp
粘着位如果一个权限为777目录具有 粘着位,每个用户都可以在这个目录下创建文件,但只有权限删除自己是所有者的文件。
将一个可执行程序设置为 粘着位,有两种方式:chmod o+t
                                                                                    chmod    1755    %(mod的 1代表 粘着位)


添加用户: useradd
                      -u :UID
                      -g :缺省所属用户组GID
                      -G :指定用户所属多个组
                      -d:指定宿主目录
                      -s:命令解释器Shell
                      -c:描述信息
                      -e:指定用户失效时间
    
修改用户信息:usermod
   修改一个用户的名称:usermod -l  newname   oldname
   把用户添加到一个组里:usermod -g  group   user1

pwck            检测/etc/passwd文件(锁定用户 passwd  -l user1   将用户user1锁定,是用户无法登录,解锁用 -u )
vipw             编辑/etc/passwd文件
id                  查看用户id和组信息
finger           查看用户详细信息
su                 切换用户(su - user1 环境变量切换)
passwd -S  查看用户密码状态
who, w         查看当前登录用户信息

删除用户: userdel -r  username   删除用户,同时用 -r 删除用户目录


14.3用户组管理命令

设置组密码及管理组内成员: gpasswd 
         -a  添加用户到用户组
         -d  把用户从用户组删除
         -A 设置用户组管理员
         -r  删除用户组密码 
         -R禁止用户切换为该组


groups 查看用户隶属于哪个用户组
newsgrp  切换用户组
grpck       用户组配置文件检测
chgrp  修改文件所属组
vigr         编辑/etc/group文件(锁定文件)


实例:授权jack和mary 对目录/software有写权限
# groupass softadm 
# usermod -G softadm jack
#gpasswd -a mary  softadm 
#chgrp softadm /softawre
#chmod g+w  /software

14.4批量添加用户

1 使用的命令顺序
newusers      导入用户信息文件  (newusers <  用户信息文件)    
pwunconv     取消shadow passwd 功能
chpasswd    导入密码文件  (文件格式:  用户:密码)
pwconv         将密码写入shadow文件


14.5用户授权

1. 限制用户 su 为 root
# ls -l /bin/su
-rwsr-xr-x 1 root root 23960 Feb 28  2010 /bin/su
# groupadd sugroup
# chmod 4550 /bin/su
# chgrp sugroup /bin/su
# ls -l /bin/su
-r-xr-x--- 1 root sugroup 23960 Feb 28  2010 /bin/su
设定后,只有 sugroup组中的用户可以使用su切换到root
添加用户helen 到 sugroup
# useradd helen
# passwd helen
# usermod -G sugroup helen

用sudo代替su 
在执行sudo时,临时成为root
不会泄漏root口令
仅向用户提供有限的命令使用权限
配置文件:/etc/sudoers,
编辑配置文件命令 :visudo
普通用户使用命令sudo 
格式: 用户名(组名) 主机地址(主机名)=命令 (绝对路径)

查看普通用户被授权多少root命令: # sudo -l

注意:1.sudo不是吧管理员使用的命令转移给普通用户,而是普通用户以管理员身份去执行该命令
            2.权限授予尽量精细化。


你可能感兴趣的:(linux 自学笔记 (九) linux用户管理)