版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/82052915
交流QQ: 824203453
linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。
对安全要求高的服务器,都需要建立合理的用户权限等级制度和服务器操作规范。
在linux中主要是通过用户配置文件来查看和修改用户信息。
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
root:x:0:0:root:/root:/bin/bash
用户名:密码位:UID(用户标识号):GID(缺省组标识号):描述信息:宿主目录:命令解释器(使用的 shell,默认为bash)
帮助命令:man 5 passwd
字段解释:
用户名:用户登陆系统的用户名
密码:密码位
UID:用户标识号
GID:默认组ID
描述信息:存放用户的描述信息
宿主目录: 用户登陆系统的默认目录,普通用户默认是在/home/下
命令解析器: 用户使用的Shell,默认是bash
超级用户:(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、可以没有宿主目录
1,每个用户都至少属于一个用户组
2,每个用户组可以包括多个用户
3,同一用户组的用户享有该组共有的权限
初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
初始组有且仅有一个,可以修改,但不建议修改。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
root:$1$FAKb8T5g$3ni9CM7RlbrwWpDGfWP0:15439:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:密码过期后宽限天数:失效时间:标志(保留字段)
查看命令:man 5 shadow
解释:
用户名: 登陆系统的用户名
加密密码:centos6.3里加密算法升级为SHA512散列加密算法,如果密码位是!!或者*代表没有密码,不能登录
最后一次修改时间:用户最后一次修改密码的天数,是从1970年1月1日开始计算的天数
最小时间间隔:两次修改密码之间的最小天数
最大时间间隔:密码保持有效的最多天数
(忘记密码,可在shadow下删除加密密码,不需密码就能登录,然后修改密码)
警告时间:从系统开始警告到密码失效的天数
密码过期后宽限天数:0表示密码过期后立即失效,-1表示密码永远不会失效
失效时间:密码失效的绝对天数(不用管有效期) 要用时间戳表示
标志:保留字段
把时间戳换算成日期
date -d "1970-01-01 17382 days"
把日期换算成时间戳:
echo $(($(date --date="2017/08/05" +%s)/86400+1))
共4个字段,数据格式为:
root:x:0:root
sys:x:3:root,bin,adm
组名:组密码位:GID:组成员(组内所有用户列表)
组名:用户所在的组
组密码:密码位,一般不使用
GID:主标示号
组内用户列表: 属于该组的用户列表
共4个字段,数据格式为:
root:::
bin:::bin,daemon
组名:组密码:组管理员用户名:组中附加用户
useradd [选项] 用户名 -D 查看缺省参数
选项:
-u:UID,手工指定用户的UID号
-g:手工指定用户的初始组GID
-G:指定追加用户的附加组,以逗号分隔
-d:手工指定用户的宿主目录
-s:手工指定用户的登录Shell,默认是/bin/bash
-c:描述信息,手工指定用户的说明
-e:指定用户失效时间
eg:#useradd -u 666 -G root,bin -c "test user" -d /liming -s /bin/bash li
1,分别在/etc/passwd、/etc/shadow ,/etc/group和/etc/gshadow/文件中添加一笔记录
2,创建用户宿主目录
3,在用户宿主目录中设置默认的配置文件
5,创建邮件目录 /var/spool/mail/用户名
4,设置用户初始密码
用户配置文件:
/etc/default/usradd
GROUP=100 用户默认组,默认创建用户,组ID指向100这个用户组(共有模式),私有模式中,用户组是用户的同名组
HOME=/home 用户宿主目录
INACTIVE=-1 密码过期宽限天数(shadow文件第7个字段)
EXPIRE= 密码失效时间(shadow文件第8个字段)
SHELL=/bin/bash 缺省的命令解释器,默认的
SKEL=/etc/skel 模板目录
CREATE_MAIL_SPOOL=yes 是否建立邮箱
/etc/login.defs
MAIL_DIR /var/spool/mail 默认邮箱目录
PASS_MAX_DAYS 99999 密码有效期(shadow 第5个字段)
PASS_MIN_DAYS 0 密码修改间隔(第4个字段)
PASS_MIN_LEN 5 密码最小5位(升级后的PAM生效,最小8位,该配置已失效)
PASS_WARN_AGE 7 密码到期警告(第6个字段)
UID_MIN 500 最小UID
UID_MAX 60000 最大UID
GID_MIN 500 最小组ID
GID_MAX 60000
CREATE_HOME yes 是否自动创建宿主目录
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 加密模式
/etc/ske1 新用户信息文件(用户模板目录)
作用:如果该目录下有文件,那么新建用户时,这些文件都会在用户宿主目录下自动创建
登录信息:/etc/motd /etc/issue
passwd [选项] 用户名
选项:
-S 查询用户密码的密码状态。仅root用户可用 (即查看某一个用户的shadow记录)
-l 暂时锁定用户。仅root用户可用
-u 解锁用户。仅root可用
--stdin 可以通过管道符输出的数据作为用户的密码。
eg:echo "123" | passwd --stdin lamp 设置lamp用户的密码为 123
eg:echo "123" | md5sum 设置密码 用md5加密方式输出
eg:echo "123" | md5sum | passwd --stdin yangmi
(针对已存在用户) usermod [选项] 用户名
选项:
-l 修改用户名 (login)usermod -l a b(b改为a)
-u:UID,修改用户的UID号
-G:修改用户的附加组,以逗号分隔
-L:临时锁定用户(Lock)
-U:解锁用户锁定(Unlock)
-c:修改用户的说明信息
eg:usermod -G softgroup samlee
将用户samlee添加到softgroup用户组中
eg:usermod -l samlee -d /home/samlee -G lampbrother lim
将用户lim的登录名改为samlee,加入到lampbrother组中,用户目录改 为/home/samlee
userdel -r 用户名 -r:删除用户家目录
手工删除:
使用find命令查找属于某个用户或用户组的文件
find选项-user、-uid、-group、-gid
1、对需要保留的文件进行移动和备份
2、对不需要的文件进行删除
3、清除用户文件中的相关表项
4、清除用户宿主目录
vi /etc/passwd vi /etc/shadow vi /etc/group vi /etc/gshadow
rm -rf /var/spool/mail/用户名/
rm -rf /home/用户名/
禁用 # usermod -L username # passwd -l username
恢复 # usermod -U username # passwd -u username
chage [选项] 用户名
-l 列出用户的详细密码状态
-d 日期,修改密码最后最后一次更改日期(shadow文件第3个字段)
-m 两次密码修改间隔(第4个字段)
-M 密码有效期(第5个字段)
-I 密码过期后,锁定账户的宽限天数(第7个字段)
-E 设置密码的过期日期,如果为0,代表密码
立即过期;如果为-1,代表密码永不过期(第8个字段)
-W 设置密码过期前,开始警告的天数(第6个字段)
chage -d 0 lamp 把lamp用户的密码修改日期归0
这个命令其实是把密码修改日期归0(shawdow第3个字段),这样用户一登录就要修改密码,这个场景适合root创建一批用户,用户登录后就需要改密码
pwck 检测/etc/passwd文件(锁定文件)
vipw 编辑/etc/passwd文件
id 查看用户id和组信息
eg:#id root
uid=0(root) gid=0(root) 组=0(root)
finger 查看用户详细信息
su 切换用户
选项:su - 用户环境变量一起切换 -c 仅执行一次命令,而不切换用户身份
passwd -S 查看用户密码状态
who、w 查看当前登录用户信息
eg:非root用户使用su - 切换到root用户,不需要使用 (su - root)
设置用户密码:echo "密码" |passwd --stdin 用户名
查看用户组命令:
eg:grep root /etc/group
1,添加用户组 groupadd [选项] 组名 -g 指定组id
groupadd -g 888 webadmin
创建用户组webadmin,指定其GID为888
2,删除用户组: groupdel 组名
3,修改用户组信息 groupmod [选项] 组名 -g 修改组id -n 修改组名
groupmod -n apache webadmin
修改webadmin组名为apache
4,设置组密码及管理组内成员(把用户添加入组或从组中删除) gpasswd 选项 组名
-a 添加用户到用户组
-d 从用户组中删除用户
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为该组
groups 查看用户隶属于哪些用户组 eg: groups spark 查看spark用户属于哪些组
newgrp 切换用户组
grpck 用户组配置文件检测
chgrp 修改文件所属组
vigr 编辑/etc/group文件(锁定文件)
用户组的信息位置 /etc/group /etc/gshadow
grepconv grepunconv
用户组权限示例:
授权用户jack和mary对目录/software有写权限
# groupadd softadm
# usermod -G softadm jack
# gpasswd -a mary softadm
# chgrp softadm /software
# chmod g+w /software
# ls -ld /software
drwxrwxr-x 2 root softadm 512 Jul 14 06:17 /software
# grep softadm /etc/group
softadm::100:jack,mary
用户的宿主目录:
普通用户:/home/用户名,所有者和所属组都是该用户,权限是700
超级用户:/root/,所有者和所属组都是root用户,权限是550
用户的邮箱:
/var/spool/mail/用户名/
用户模板目录:
/etc/skel/
linux下的用户密码先写入password下的密码位,然后用转换命令pwconv,将密码写入shadow下
pwunconv 转换命令 回写密码 把shadow下的密码回写到passwd中
pwconv
查看shell
# cat /etc/shells
id 用户名
查看用户各个id信息
[root@master hadoop]# id zs
uid=888(zs) gid=100(users) groups=100(users),3(sys)
pwconv/pwunconv
grpconv/grpunconv
system-config-users
authconfig 、/etc/sysconfig/authconfig
批量添加用户:
newusers命令 导入用户信息文件
pwunconv命令 取消shadow password功能
chpasswd 命令 导入密码文件
(格式 用户名:密码)
pwconv命令 将密码写入shadow文件
实例:一次批量添加10个用户
限制用户su为root:
# groupadd sugroup
# chmod 4550 /bin/su
# chgrp sugroup /bin/su
# ls -l /bin/su
-r-sr-x--- 1 root sugroup 18360 Jan 15 2010 /bin/su
设定后,只有sugroup组中的用户可以使用su切换为root
# useradd helen
# passwd helen
# usermod -G sugroup helen
-在执行sudo命令时,临时成为root
-不会泄漏root口令
-仅向用户提供有限的命令使用权限
配置文件:/etc/sudoers,编辑配置文件命令visudo。
格式: 用户名 主机地址=命令(绝对路径)
如果一个普通用户能执行所有的root命令,格式为: 用户名 主机地址=(ALL)ALL
eg: hadoop 192.168.137.11=(ALL)ALL
对组进行设置
格式为: %组名 主机地址=命令(绝对路径)
使用 sudo -l 可以查看普通用户能使用的sudo命令
使用格式为: sudo 命令绝对路径
sudo并不是只可以把管理员使用的命令授权给用户
sudo可以让普通用户以root身份执行命令。
分析:
授予普通用户管理apache 服务。
权限分析:
1,编辑apache配置文件。
2,使用apache启动脚本。
3,更新网页。
实现:
1,a 设置用户为配置文件的所有者 chown
b 改变所属组,把用户加入组,授予组 w 权限
visudo
用户 地址=/bin/vi /etc/httpd/conf/httpd.conf
2,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
3,/var/www/html 改变所有者
版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/82052915
交流QQ: 824203453