| 关键词: 用户 文件 密码 用户组 etc passwd 目录 softadm webadmin 命令 |
Linux用户管理 配置文件 用户信息文件:/etc/password 密码文件:/etc/shadow 用户组文件:/etc/group 用户组密码文件:/etc/gshadow 用户配置文件:/etc/login.defs /etc/default/useradd 新用户信息文件:/etc/skel 登录信息:/etc/motd etc/issue /etc/passwd文件格式 例如root:x:0:0:root:/root:/bin/bash 用户类型 Linux用户分为三种: 超级用户(root,UID=0) 普通用户(UID 500-60000) 伪用户(UID 1-499) 伪用户 1. 伪用户与系统和程序服务相关 bin,daemon,shutdown,halt等,任何linux系统默认都有这些伪用户 mail,news,games,apache,ftp,mysql及sshd等,与linux系统的进程相关 2. 伪用户通常不需要或无法登录系统 3. 可以没有宿主目录 用户组 每个用户都至少属于一个用户组 每个用户组可以包括多个用户 同一个用户组的用户享有该组共有的权限 /etc/shadow文件格式 /etc/shadow保持了真正的密码,把密码删除,则登录时无需输入密码 Pwunconv 把/etc/shadow 的密码转换到/etc/passwd里面去 Pwconv 把/etc/passwd的密码转换到/etc/shadow里面去 /etc/group文件格式 如:sys::3:root,bin,adm 手工添加用户 分别在/etc/passwd /etc/group和/etc/shadow文件中添加一笔记录 创建用户宿主目录 在用户宿主目录中设置默认的配置文件 设置用户初始密码 Setuid 思考:为什么普通用户可以更改密码? Setuid的定义:当一个可执行程序具有setuid权限。用户执行这个程序时,将以这个程序所有者的身份执行。 Setuid=4 所有者 Chmod u+s u-s Chmod 4755 755 Setgid=2 所属组 Chmod g+s g-s Chmod 2755 755 2755 粘着位=1 其他人 t ,如果一个一个权限为777目录具有粘着位,每个用户都可以在这个目录下创建文件,但是只能删除自己是所有者的文件 chmod o+t o-t chmod 1777 777 范例:1.将touch命令授权setuid权限 Which touch ls –l /bin/touch Su – lisi touch file01 ls –l file01 chmod u+s /bin/touch 1. 当vi命令被授予setuid权限 2. 查找setuid程序 Find / -perm -4000 –o –perm -2000 添加用户 Useradd设置选项 用户名 –D 查看缺省参数 Useradd –D和cat /etc/default/useradd作用相同 u: UID 比如 useradd –u 888 newuser g: 缺省所属用户组GID 比如 useradd –g webadmin newuser G:指定用户所属多个组 比如 useradd –G sys,root newuser d : 宿主目录 s : 命令解释器shell c : 描述信息 e : 指定用户失效时间 passwd sam 手工添加用户 用户组管理命令 添加用户组 groupadd groupadd –g 888 webadmin 创建用户组webadmin,其GID为888 删除用户组:groupdel组名 修改用户组信息groupmod groupmod –n apache webadmin 修改webadmin组名为apache 用户组管理命令 gpasswd设置组密码及管理组内成员 gpasswd webadmin 给webadmin组设置密码 more /etc/gshadow 查看组配置文件 /etc/group查看组基本信息 -a 添加用户到用户组gpasswd –a tomgao root -d 从用户组中删除用户 -A 设置用户组管理员gpasswd –A tomgao webadmin 让tomgao来管理webadmin组 -r 删除用户组密码 gpasswd –r 组名 -R 禁止用户切换为该组 Newgrp webadmin 是切换到wenadmin组的意思 Groups lisi 查看lisi隶属于哪个组 Id 查看各种id信息 修改用户信息 usermod usermod –G softgroup samlee 将用户samlee添加到softgroup用户组中 usermod –l samlee –d /home/samlee –g lampbrother liming 将用户liming的登录名改为samlee,加入到lampbrother组中,用户目录改为/home/samlee 用户管理命令 pwck 检测/etc/passwd文件(锁定文件) vipw 编辑/etc/passwd文件 vipw和vi的区别是vipw是专门编辑/etc/passwd的,它会锁定文件,一个用户编辑时其他用户不能编辑 Id 查看用户id和组信息 finger 查看用户详细信息 Su 切换用户(su –会环境变量切换,而su 不会) passwd –d 清除用户密码 passwd –S 查看用户密码状态,比如检测某用户是否空密码或者密码锁定 passwd –l 锁定用户 passwd –uf 解锁用户 who,w 查看当前登录用户信息 groups 查看用户隶属于哪些用户组 newgrp 切换用户组 grpck 用户组配置文件检测 chgrp 修改文件所属组 vigr 编辑/etc/group文件(锁定文件) 用户组权限示例 授权用户jack和mary对目录/software有写权限 #groupadd softadm 建立组softadm #usermod –G softadm jack 添加用户jack到组softadm #gpasswd –a mary softadm 添加用户mary到组softadm #chgrp softadm /software 改变目录/software的所属组为softadm #chmod g+w /software 给目录添加g+w的权限 #ls –ld /software Drwxrwxr-x 2 roor softadm 512jul 14 06:17 /software #grep softadm /etc/group Softadm::100:jack,mary 禁用和恢复用户 禁用 #usermod –L username #passwd –l username 恢复 #usermod –U username #passwd –u username 删除用户 userdel –r用户名 -r:删除用户目录 手工删除: 使用find命令查找属于某个用户或用户组的文件 find选项-user –uid –group –gid 1. 对需要保留的文件进行移动和备份 2. 对不需要的文件进行删除 find /home –user jack –ok rm {} \; 3. 清楚用户文件中的相关表项 4. 清楚用户宿主目录 用户管理命令 Chage 设定密码 (在unix里面没有这个命令) -l 查看用户密码设置 -m 密码修改最小天数 -M 密码修改最大天数 -d 密码最后修改的日期 -I 密码过期后,锁定账户的天数 -E 设置密码的过期日期,如果为0,代表密码立即过期,如果为-1,代表密码永不过期 -W 设置密码过期前,开始警告的天数 启动或停用shadow功能 Pwconv/pwunconv Grpconv/grpunconv System-config-users Authconfig /etc/sysconfig/authconfig 想让配置永久生效,编辑/etc/sysconfig/authconfig 批量添加用户 1.newusers命令 导入用户信息文件 cd /test vi user.info Brother01::1001:3::/home/brother01:/bin/bash Brother02::1002:3::/home/brother02:/bin/bash Brother03::1003:3::/home/brother03:/bin/bash newusers < user.info 用tail -5 /etc/passwd Ls /home查看 这种方法是把用户信息生成并创建宿主目录 2.pwunconv命令 取消shadow password功能 pwunconv vi pass.info brother01:lampbrother brother02:lampbrother brother03:lampbrother 3.chpasswd命令 导入密码文件(格式 用户名:密码) chpasswd < pass.info 4.pwconv命令 将密码写入shadow文件 Pwconv Tail -5 /etc/shadow Su – brother01查看用户是可以使用的 还有一种方法就是通过写脚本,然后执行脚本批量添加 限制用户su为root(作用是防止其他用户切换到su猜密码) #groupadd subgroup #chmod 4550 /bin/su #ls –l /bin/su -r-sr-x--- l root 18360 Jan 15 2010 /bin/su #chgrp subgroup /bin/su #ls –l /bin/su -r-sr-x--- l root subgroup 18360 Jan 15 2010 /bin/su 设定后,只有sugroup组中的用户可以使用su切换为root #useradd helen #passwd helen #usermod –G subgroup helen 用sudo代替su: 在执行sudo命令时,临时成为root 不会泄露root口令 仅向用户提供有限的命令使用权限 配置文件:/etc/sudoers,编辑配置文件命令visudo,普通用户使用命令sudo 格式:用户名(组名) 主机地址=命令(绝对路径) rpm –q sudo visudo 编辑sudo配置文件 比如我想授权普通用户也可以添加用户,删除用户 则which useradd Visudo 在里面加入 csdn1 helen=/usr/sbin/useradd,/usr/sbin/userdel 然后切换到普通用户csdn1 su – csdn1 Sudo /usr/sbin/useradd lampbrother 添加用户 普通用户使用 sudo –l可以查看他自身能执行什么命令 例子:比如一个apache服务器,要授权一个普通用户管理web应用,该如何设置权限 1. 该普通用户有权限能编辑apache配置文件 2. 使用apache启动脚本 3. 更加网页 1. 先找apache的安装包 Rpm –ql httpd | more 然后会看到是/etc/httpd/conf/httpd.conf 再看一下此文件权限 ls –l /etc/httpd/conf/httpd.conf -rw-r—r—1 root root 33726 Apr 5 2010 /etc/httpd/conf/httpd.conf 看到只有root才有写权限 可以设置用户为配置用户所有者或者改变所属组,把用户加入组,授予组写权限,还有一种方法visudo 用户 地址=/bin/vi /etc/httpd/conf/httpd.conf 第三种方法示例 visudo 加入一行 csdn1 helen=/bin/vi /etc/httpd/conf/httpd.conf Su – csdn1 Sudo –l Sudo /bin/vi /etc/httpd/conf/httpd.conf 2.所有服务的启动脚本都放在/etc/rc.d/init.d/httpd下面 允许普通用户start reload fullstatus configtest 同一使用visudo 用户 地址=/etc/rc.d/init.d/httpd start, /etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd fullstatus, /etc/rc.d/init.d/httpd configtest 使用sudo /etc/rc.d/init.d/httpd start来启动 3.grep documentroot /etc/httpd/conf/httpd.conf 可以查看网页的存放目录是/var/www/html 如果是单个用户改变所有者权限即可,如果是多个普通用户,把普通用户加入组,改变所属组权限 John the ripper应用 #tar –xzvf john-1.7.6.tar.gz #cd john-1.7.6/run #make 破解用户liming密码 #grep liming /etc/passwd>/test/liming.passwd #grep liming /etc/shadow>/test/liming.shadow #/test/john-1.6.6/run/unshadow/test/liming.passwd /test/liming.shadow>/test/liming.john #/test/john-1.6.6/run/john /test/liming.john 下载地址http://www.opendwall.com/john/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|