linux 用户管理

 

linux 用户管理
用户信息:/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
3passwd.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

如果不是标准的源代码包,肯定会有帮助文档,找下


 
linux 用户管理

linux 用户管理,布布扣,bubuko.com

linux 用户管理

上一篇:天天向上的能力B


下一篇:读懂IL代码就这么简单(二)