linux中用户、组的管理(密码管理、权限管理及其修改用户、组)(转)

process(进程)

1 计算资源

权限  

用户(获取资源或服务的凭证或标识)  

用户,容器,关联权限:用户组(标识符),方便地指派权限  

2 用户、组、权限  

 安全上下文(secure context):  

 权限:r,w,x  

 文件:  

 r:可读,可以使用类似 cat等命令查看文件内容;  

 w:可写,可以编辑或删除此文件;  

 x:可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;

3 目录

 r:可以对此目录执行ls以列出内部的所有文件;  

 w:可以在此目录创建文件;  

 x:可以使用cd切换进此目录,也可使用ls -l查看内部文件的详细信息;  

 rwx:  

 r--:只读

 r-x:读和执行  

 ---:无权限

   ---:无权限

   --x:执行

   -w-:写  

   -wx:写和执行  

   r--:只读

   r-x:读和执行  

   rw-:读写  

   rwx:读写执行  

 eg::rwxr-xr-x  

 rw-r-----:

 :rw-rw----

 rwxrwr-x:  

 用户:UID,/etc/passwd  

 组 :GID,/etc/group

 影子口令:etc/shadow  

 组:/etc/gshadow  

4 用户类别

   管理员:  

   普通用户:-  

   系统用户:-  

   一般用户:-  

 用户组类别:  

   管理员组:  

   普通组:(包括系统组和一般组)  

 用户组类别:  

    私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组  

    基本组:用户的默认组  

    附件组,额外组:默认组以外的其它组  

5 解析:名称解析

 /etc/passwd  

 account:登录名  

 password:密码  

 UID:用户组ID  

 GID:基本组ID  

 comment:注释  

 HOME DIR:家目录  

 SHELL:用户的默认shell  

 /etc/shadow  

 account:登录名  

 encrypted password:加密的密钥 

6 加密方法

 对称加密:加密和解密使用同一个密钥  

 公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(publickey),公钥加密做密钥交换  

 单项加密,散列加密:提取数据特征码,常用于数据完整性校验,单项加密不可逆  

 .雪崩效应(初始条件的微小改变将会引起结果的巨大改变)  

 .定长输出  

 MD5:Message Digest9(信息摘要),128位定长输出  

 SHA1:Secure Hash Algorithm(安全的哈希算法),160位定长输出  

 eg:which useradd  

 ls -l useradd 查看当前用户下useradd命令  

 ls -l $(which useradd)  

 ls -l ’which useradd‘  

 /etc/passwd:  

 用户名:密码:GUI:GID 注释: 家目录:默认SHELL  

 /etc/group:  

 组名:密码:GID:以此组为其附加组的用户列表  

 /etc/shadow:  

 用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间 

7 useradd [options] USERNAME  

 -u UID:指定选项(普通用户ID>=)  

 -g GID(基本组)  

 -G GID,...(附加组或额外组,组必须事先存在,组可以有多个,彼此间用“,”隔开)  

 -c "COMMENT":指定用户注释信息 eg:useradd -c "Tom" -d /home/blear user4  

 -d /path/to/somedirectory:指定家目录  

 -r 添加系统用户  

 -s SHELL:指定SHELL路径 eg:useradd -s /sbin/nologin user5  

 su user5  

 cat /etc/shells  

 (利用echo $shell可以查看自己的shell是什么)  

 /etc/shells :指定了当前系统可用的安全的shell  

 -M :不为用户创建家目录  

 就算/etc/login.defs下设定家目录也不创建  

 -m :强制为用户创建家目录  

 -k :把skel这个目录的所有文件在创建用户的家目录以后把这个目录下的所有文件复制到用户的家目录下去  

 skel是人的骨架,框架 (里面是一些bash的配置文件)  

 -m -k :两者通常同时使用  

 eg:ls -a /etc/shel  

 -r:添加为系统用户  

8 userdel(删除用户)

 userdel [option] USERNAME  

 -r :删除用户的同时也删除用户的家目录  

 id : 查看用户的账号属性信息  

 -u :只查看UID  

 -g :只查看GID  

 -G :查看当前用户所有组  

 -n :显示用户名  

 -u -n: 同时用可显示用户的名字,而不是只显示用户的id号 eg:id -u -n user1  

 -g -n: 同时用可显示组的名字 eg:id -g -n user1  

 -G -n: 同时用可显示所有组的组名 eg:id -G -n user1  

 -Gn :同时用可显示每一个组的组名 eg:id -Gn  

 finger:查看(检索)用户账号信息  

 finger USERNAME  

9 修改用户账号属性

 usermod  

 -u UID :改用户的信息 eg:user -u   

 -g GID :改基本组  

 -a -G GID :改用户的附加组信息,为用户在原有组的基础上额外附加组,不使用-a选项,会覆盖此前的附加组  

 -c :指定注释信息  

 -d -m:既指定新的家目录,又移动此前的文件移至新的家目录当中去  

 -s :改用户的shell  

 -l :改用户的登录名  

 -L :锁定用户账号  

 -U :解锁账号  

 -e : 指定用户的过期时间  

 -f : 指定非活动时间(即密码过期了)  

 chsh(change shell的简写): 修改用户的默认shell  

 chfn(change finger):修改用户的注释信息  

10 密码管理

 普通用户只能用passwd修改自己的密码  

 passwd [USERNAME] 管理员用于修改其他用户的密码  

 --stdin :标准输入

 passwd --stdin :从标准输入读取密码,标准输入在键盘  

 eg:echo “redhat”| passwd --stdin user3

 -l :锁定用户账号  

 -u :解锁  

 -d :删除用户密码  

 -w :警告时间  

 pwck:检查用户账号的完整性  

 组管理:  

 创建组:groupaddwhich useradd  

 groupadd  

 -g:指定GID  

 -r: 添加为系统组  

 eg:# groupadd -r nginx  

 # tail - /etc/group

 groupmod  

 -g GID  

 -n GRPNAME  

 groupdel(删除组)  

 gpasswd:为组设定密码  

 newgrp GRPNAME <--> exit

 change  

 -d:最近一次的修改时间  

 -E:过期时间  

 -I:非活动时间  

 -m:最短使用期限  

 -M:最长使用期限  

 -W:警告时间  

 groupadd USERNAME  

 用户管理:  

 useradd,userdel,usermod,passwd,chsh,chfn,finger,id,change  

 组管理:  

 groupadd,groupdel,groupmod,gpasswd  

11 权限管理:(r,w,x)

 三类用户:  

 u:属主  

 g: 属组  

 o: 其它用户  

 chown:改变文件属主(只有管理员可以使用此命令)  

 # chown USERNAME file,...  

 -R:修改目录及其内部文件的属主  

 --reference=/path/to/somefile file,...

 chown USERNAME:GRPNAME file (可改属组也可改属主)  

 chown :GRPNAME file (属主不动只改组)  

 # chgrp GRPNAME file,...  

 -R  

 --reference=/path/to/somefile file,...

 chmod:修改文件的权限  

 修改三类用户的权限:  

 chmod MODE file,...  

 -R :递归修改  

 --reference=/path/to/somefile file,...

 修改某类用户或某些类用户权限:  

 u,g,o,a  

 chmod 用户类别=MODE file,...  

 修改某类的用户某位或某些位权限:  

 u,g,o,a  

 chmod 用户类别+|-MODE file,...  

 su - openstack  

 bc 是计算器  

 openssl passwd 生成密码 eg: openssl passwd -(数字1)-salt ''

 umask:用户创建文件用的遮罩码/掩码  

 # umask  

 文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1;  

 umask:  

 文件:-=  

 目录:-=  

 站在用户登录的的角度来说,SHELL的类型:  

 登录式shell:  

 正常通常某终端登录  

 su - USERNAME  

 su - USERNAME  

 非登录式shell:  

 su USERNAME  

 图形终端下打开命令窗口  

 自动执行的shell脚本  

 bash的配置文件:  

 全局配置  

 /etc/profile,/etc/profile.d/*.sh,/etc/bashrc  

 个人配置  

 ~/.bash_profile,~/.bashrc  

 profile类的文件:  

 设定环境变量  

 运行命令或脚本  

 bashrc类的文件:  

 设定本地变量  

 定义命令别名  

 登录式shell如何读取配置文件?  

 /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

 非登录式shell如何读取配置文件?  

 ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

本文出自 “show_only” 博客,请务必保留此出处http://10240214.blog.51cto.com/6634068/1144108

上一篇:Golang 入门系列(十六)锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快


下一篇:Java锁的深度化--重入锁、读写锁、乐观锁、悲观锁