用户信息:/etc/passwd 用man查看配置文件 ------ man 5 passwd文件
密码文件:/etc/shadow
用户配置文件:/etc/login.defs 添加用户的缺省用户信息
/etc/default/useradd 添加用户的缺省用户信息
/etc/issue 用户登录之前的提示信息
/etc/motd 用户登录之后的提示信息
cat /etc/shells 查看系统中的shell
wc -l /etc/passwd 统计用户个数
用户名:最好字母 ,没有特殊要求
密码:密码位,实际没有存放密码
UID:
GID:
注释性描述
宿主目录
命令解释器
默认uid = 500
用户分为3种:
超级用户:(root,uid = 0)
普通用户:(uid 500-60000)
伪用户:(uid 1-499) /sbin/nologin
伪用户--为了安全
linux中任何一个命令的操作都必须有一个用户的身份
伪用户一般和系统或者程序服务相关
bin,daemon,shutdown ,halt linux默认都有这些伪用户
伪用户通常不需要或无法登陆系统
可以没有宿主目录
gid:组id
添加一个用户肯定会有一个隶属的组 即使不指定,也会默认指定一个组
每个用户都至少属于一个用户组
每个用户组可以包括多个用户
同一个组的用户享有改组公共的权限
window中会存在一个用户组属于另一个组,但linux中不可以这样
echo "123456"|md5sum
经常改变密码 服务器隔离
删除shadow中的密文部分,用户就不在需要密码了
最小时间间隔 :
最大时间间隔 :到时间必须更改密码
pwconv passwd 转到 shadow /sbin/nologin 【无法登陆】
pwunconv 会写回去
unix中不提供pwunconv命令
新添加用户的缺省配置:
/etc/login.defs
/etc/default/useradd
登录信息:/etc/motd(登录成功才显示) /etc/issue(是否登录成功都显示)
手工添加用户
1、/etc/passwd添加一行 :密码没有可以设置为空
2、/etc/shadow 拷贝一行,密码如果没有可以设置为空
3、添加宿主目录,注意把宿主目录的所有者给用户
3、新用户信息文件 /etc/skel 用useradd命令添加的时候会自动拷贝到宿主目录下面
当一个程序具有setuid的权限,用户执行这个程序的时候,将以这个程序的所有者的身份执行,linux命令大部分的所有者为root,
也就说当用户执行一个具有setuid的命令的是时候会瞬间转换成管理员的身份,命令执行完毕后在转换成普通用户
设置setuid权限:
setuid=4
所有者
chmod u+s /bin/touch
4755 /bin/touch
chmod u-s /bin/touch
755
setgid=2
chmod g+s /g-s
2755
6755 同时授予setuid + setgid
#查找系统当前有setuid和setgid的文件
find / -perm -4000 -o -perm -2000
0 表示不限制
-o or 或者的意思
粘着位: 1 ls -ld /tmp/
/tmp 目录默认具有黏着位的属性
应用对于 目录是777的权限增加黏着位
每个用户都可以创建文件,但只可以删除自己创建的文件,
对于不是777的目录设置黏着位没有意义,对文件设置黏着位也没有意义
chmod o+7
1777
用户组配置文件:/etc/group man 查看信息
组名:组密码位: 作用:可以让不是这个组的成员切换到这个组,为了安全一般不用这个功能
GID;
组内用列表
添加组:groupadd 组名
groupadd -g 组id 组名
useradd -D 查看添加用时的默认信息 即查看/etc/default/useradd文件
-u 指定uid 必须是系统中不存在的
-g 指定所属的组
-G 指定用户所属的多个组
-d 宿主目录
-s 指定的shell
-c 描述信息 当描述信息有空格的时候必须用户引号引起来
-e 指定用户的实效时间
useradd -u 888 -g webadmin -G sys,root -d /backup -s /bin/bash -c "描述" -e 2011-01-05 用户名
改用户名:usermod -l new old
改变用户所属于的组
usermod -G 组名 用名 #改变所属组(一个用户可以属于多个组) 查看/etc/group
usermod -g 组名 用名 #改变默认组 查看/etc/passwd
gpasswd(所有的linux os) 设置组密码,及管理组成员
#设置组密码同时管理组内的成员
gpasswd -a 用户名 组名 --添加
gpasswd -A 用户名 组名 #提升此用户为管理员
gpasswd -d 用户名 组名 --删除
gpasswd 组名 #给组设置一个密码
gpasswd -r 组名 删除组密码
gpasswd -R 禁止用户设置为该组
/etc/gshadow 组密码配置文件
grpconv grpunconv 类似密码那个
转化过去以后好多对组操作的功能就不可用了,必须在转化回来
切换到组: newgrp 组名
在用id查看现在属于哪个组
groups [组名] #查看用户隶属于哪个组
id:查看用户id和组信息
finger:查看用详细信息
groupadd 组名 #添加组
groupdel 组名(不能删除是用户默认组的组) #删除组
groupmod -n new_name old_name #更换组名
pwck 检测/etc/passwd文件(锁定文件) 检测文件错误信息
当用户出现异常的情况时可以用此命令 错误行会提示
vim 打开文件时不会锁定文件 vipw(打开passwd文件时会锁定文件)
tty:本地 pt/s 远程终端
su - 会同时切换环境变量 echo $PATH
passwd -d 用户名 删除此用户的密码
passwd -S 用户名 检测此用户的密码
usermod -L 用户名 #锁定一个用户
passwd -l 用户名 #锁定一个用户
passwd -S 用户名 查看密码状态
原理:锁定后 密码前面会多两个!! 可以直接编辑配置文件(/etc/shadow)进行更改 删除组也可以直接修改配置文件
usermod -U 用户名 #解锁一个用户密码
passwd -u 用户名 #解锁一个用户密码
登陆用户信息
who(简单)
w (详细)
groups 查看用户隶属于哪些用户组
newgrp 切换用户组
grpck 检测用户组配置文件
chgrp 修改文件所属组
vigr 编辑/etc/group 文件(锁定文件)
删除用户 userdel -r 用户名
?其他有些文件是此用户创建的并不能删除
find /home -user jack
find /home -uid uid
find /home -group 组名
find /home -gid gid
find ./ s.sam -ok rm {} \; 找到后确认删除?
1、对需要保留的文件 进行移动和备份
2、对不需要的文件进行删除
3、清除用户文件中的相关项
4、清除用户宿主目录
#查看用户密码更直观 /etc/shadow
chage -l root 查看用户密码设置
具体用法看 help 帮助
authconfig 对应 /etc/sysconfig/authconfig
system-config-?
批量添加用户
1、newusers 导入用户信息
newusers < user.info 文件格式就是密码文件的格式
2、pwunconv
3、passwd.info 格式: 用户名:密码
a00:123456
a01:123456
a02:123456
a03:123456
4、导入密码文件:chpasswd < pass.info
5、pwconv
————————————————————————————————————————————————————————
只有指定的用户可以用su命令切换到管理员
1、groupadd sugroup
2、/bin/su (默认权限就有s位,) chomd 4550 /bin/su
3、改变所属组 chgrp sugroup /bin/su
4、加入到组中 usermod -G 组名 用户名
在执行sudo命令时,临时成为root
不会泄露root口令
仅向用户提供有限的命令使用权限
sudo 让普通用户以root身份执行命令
/etc/sudoers 配置文件 用vi直接编辑不会生效
/usr/bin/sudo
/usr/sbin/visudo
只有管理员+visudo才可以编辑配置文件
命令都要用绝对路径(先用which查看)
sudo配置文件格式: 用户名(组名) 主机地址=命令(绝对路径) 多个命令用逗号分割
在sudo配置文件中给用户权限以后 要在命令前面+sudo /usr/sbin/useradd
注意普通用户命令的搜索路径: echo $PATH
linux 中缺省每个命令的所有者都是 root
sudo -l
在用户登录的情况下查看被授权的命令
命令精确化 csdn2 helen=/sbin/shutdown -h now 限制命令的参数
授予一个用户管理apache
1、编辑配置文件
2、使用apache脚本
3、更新网页
1、设置用户为文件的所有者 root不受任何限制,即使文件的所有者不是root
2、改变所属组,授予组w权限
3、visudo
________________________________________________________________________________
httpd start|restart|fullstatus|reload(重新读取配置文件,不会影响服务) |configtest(检测语法错误)
csdn localhost=/etc/rc.d/init.d/httpd start
_____________________________________________________________
grep DocumentRoot /etc/httpd/conf/http.conf
对目录有写权限就行
/var/www/html 改变所有者
——————————————————————————————————————————————————————————————
john the ripper 密码增强工具
安装:make linux-x86-see2
如果不是标准的源代码包,肯定会有帮助文档,找下