Linux用户管理

Linux用户管理
    |—用户管理配置文件
    |—用户管理命令
    |—用户组管理命令
    |—批量添加用户
    |—用户授权

***********************************************************************
配置文件
    用户信息文件:/etc/passwd
    密码文件:/etc/shadow
    用户组文件:/etc/group
    用户组密码文件:/etc/gshadow
    用户配置文件:
        /etc/login.defs
        /etc/default/useradd
    新用户信息文件:/etc/skel (每次创建新用户,系统自动copy该目录下文件到宿主目录)
    登录信息:/etc/motd (登录后查看到)    /etc/issue(登录前看到)

一、/etc/passwd文件格式
root:x:0:0:root:/root:/bin/bash
用户名:密码位:用户UID:缺省组GID:描述信息:宿主目录:命令解释器shell

用户类型
Linux用户分为三种:
    超级用户(root,UID=0)
    普通用户(UID 500-60000)
    伪用户(UID 1-499)

伪用户
①伪用户与系统和程序服务相关
bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户
mail、news、games、apache、ftp、mysql及sshd等,与Linux系统的进程相关
②伪用户通常不需要或无法登陆系统
③可以没有宿主目录

用户组
①每个用户都至少属于一个用户组
②每个用户组可以包括多个用户
③同一用户组的用户享有该组共有的权限

二、/etc/shadow文件格式
root:$1$dQuKcg6f$ehGXB1iky6S8SJ/GnYYIm1:16622:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:
账号闲置时间:失效时间:标志

密码都是先写到/etc/passwd中然后再转化到/etc/shadow中,系统自动转化
# pwunconv 回写过去
# pwconv  系统自动调用

三、为什么普通用户可以改密码?
[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22984 Jan  7  2007 /usr/bin/passwd
SetUID的定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的
身份执行。

①SetUID=4
设置SetUID
chmod    u+s
        4755
取消SetUID
chmod    u-s
        755
②SetGID=2
chmod    g+s
        2755
③粘着位=1 chmod o+t    1777
如果一个权限为777的目录,被设置了粘着位,每个用户都可以在目录下
创建文件,但只可以删除自己是所有者的文件
范例:
1.将touch命令授予SetUID权限
2.查找SetUID程序:
    find / -perm -4000 -o -perm -2000

四、添加用户
useradd 设置选项 用户名    -D 查看缺省参数
    u:UID
    g:缺省所属用户组GID
    G:指定用户所属多个组
    d:宿主目录
    s:命令解释器Shell
    c:描述信息
    e:指定用户失效时间
[root@localhost ~]# useradd -u 666 -g root -G sys,apache -d /home/zhangsan   -s /bin/bash -c "thsi is project zhangsan" -e 2017-7-17 zhangsan
[root@localhost ~]# grep zhang /etc/passwd
zhangsan:x:666:0:thsi is project zhangsan:/home/zhangsan:/bin/bash
passwd    用户名    设置密码
[root@localhost ~]# passwd zhangsan
Changing password for user zhangsan.

用户管理命令
pwck    检测/etc/passwd文件(锁定文件)
vipw    编辑/etc/passwd文件
id        查看用户id和组信息
finger    查看用户详细信息
su        切换用户(su - 环境变量切换)
passwd -S (查看用户密码状态)
who、w        查看当前登录用户信息

用户锁定恢复
#usermod -L username
#passwd -l    username
#usermod -U  username
#passwd      -u      username

删除用户
userdel -r 用户名
    -r:删除用户目录
手工删除:
使用find命令查找属于某个用户或用户组的文件find选项-user、-uid、-group、-gid
[root@localhost ~]# find /home -user jack

chage 设置密码(unix没用)
-l    查看用户密码设置
...
启动或停用shadow功能
authconfig、/etc/sysconfig/authconfig


五、添加用户组    
groupadd    groupadd -g 888    webadmin
添加用户组gid为888的webadmin组
删除用户组:groupdel 组名
修改用户组信息groupmod
groupmod -n apache webadmin
修改webadmin组名为apache

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

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


六、用户组权限示例
[root@localhost ~]# mkdir /software
[root@localhost ~]# ls -ld /software/
drwxr-xr-x 2 root root 4096 Jul 23 17:03 /software/
[root@localhost ~]# useradd jack
[root@localhost ~]# passwd jack
[root@localhost ~]# groupadd softadm
[root@localhost ~]# grep softadm /etc/group
softadm:x:8889:
[root@localhost ~]# usermod -G softadm jack
[root@localhost ~]# gpasswd -a mary softadm
Adding user mary to group softadm
[root@localhost ~]# grep softadm /etc/group
softadm:x:8889:jack,mary
[root@localhost ~]# chgrp softadm /software/
[root@localhost ~]# ls -ld /software/
drwxr-xr-x 2 root softadm 4096 Jul 23 17:03 /software/
[root@localhost ~]# chmod g+w /software/
[root@localhost ~]# ls -ld /software/
drwxrwxr-x 2 root softadm 4096 Jul 23 17:03 /software/

七、批量添加用户
newusers命令    导入用户信息文件
pwunconv命令    取消shadow password功能
chpasswd命令    导入密码文件(格式 用户名:密码)
pwconv命令        将密码写入shadow文件

限制用户su为root,组sugroup:
[root@localhost ~]# groupadd sugroup
[root@localhost ~]# chmod 4550 /bin/su
[root@localhost ~]# ls -ld /bin/su
-r-sr-x--- 1 root root 23960 Mar  1  2010 /bin/su
[root@localhost ~]# chgrp sugroup /bin/su
[root@localhost ~]# ls -ld /bin/su
-r-xr-x--- 1 root sugroup 23960 Mar  1  2010 /bin/su
[root@localhost ~]# usermod -G sugroup miniamin01
设定后,只有sugroup组中的用户可以使用su切换为root

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

管理Apache
1.编辑Apache配置文件
2.使用Apache启动脚本
3.更新网页

1、 a设置用户为配置文件所有者 chown
    b改变所属组,把用户加入组,授予组w权限
    c visudo 用户    地址=/bin/vi      /etc/httpd/conf/httpd.conf
2、  visudo   用户  地址=/etc/rc.d/init.d/httpd start,
    reload(配置修改)    fullstatus    configtest(检测无法错误)
3、  /var/www/html    改变所有者或所属组(多个用户管理)

你可能感兴趣的:(linux)