用户权限管理
用户user
Linux用户:Username/UID
管理员:root,0
普通用户:
系统用户:1-499
交互式登录:登录用户500+,1000+9(CentOs7)
组group
Linux组:Groupname/GID
管理员组:root,0(私有组)
普通组:系统组:1-499,1-999;普通组:500+,1000+
Linux组的类别:1.主组用户必须属于一个且只有一个组;组名同用户名,且仅包含一个用户,私有组。
2.附加组:一个用户可以属于一个或多个辅助组
用户和组的配置文件
Linux用户和组的主要配置文件:
/etc/passwd(whatis passwd) /etc/shadow /etc/group /etc/gshadow
查看文件用cat noligon不能登录
单向加密:哈希算法,原文不同,密文不同
更改加密算法:authconfig --passalgo=sha256 --update
密码的复杂性策略
1.使用数字、大小写字母及特殊字符中之少3种,
2.密码足够长,
3.使用随机密码,
4.定期更换,不要随使用最近曾经使用过的密码。(passwd -e user 用户密码立马过期)
用户管理命令:
useradd:创建用户
-u UID
-d 以指定的路径为家目录
-s 指明用户的默认shell程序
-g 指明用户所属基本组
-G 为用户指明附加组,组须事先存在
-m 创建家目录,用于系统用户
-r 创建系统用户
getent passwd haha 直接查看haha
usermod: 用户属性修改
-c 新的注释信息
-e 指明用户账号过期日期
-s 新的默认shell
userdel:删除用户
-r 删除用户家目录
查看用户相关的ID的信息
id
-u:显示UID
-g:显示GID
-G:显示用户所属组的ID
切换用户或以其他用户身份执行命令
su UserName 非登录式切换,即不会读取目标用户的配置文件,不会改变当前工作目录
su - UserName 登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换。
设置密码
passwd 修改用户指定密码
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登录修改密码
-f 强制操作
--stdin 从标准输入接受用户密码
echo "PASSWORD" |passwd --stdin USERNAME
用户相关的其他命令
chfn 指定个人信息
chsh 指定shell
创建组 groupadd
-g 指明GID号
-r 创建系统组
修改组属性 groupmod
-n 新名字
-g 新的GID
删除组 groupde
更改组密码
组密码:gpasswd
gpasswd [OPTION] GROUP
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表
newgrp命令:临时切换主组
如果用户本不属于此组,则需要组密码文件权限
练习:
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c 'Gentoo Distribution' gentoo
2、创建下面的用户、组和组成员关系
名字为webs 的组 groupadd webs
用户nginx 使用webs 作为附属组 useradd -G webs nginx
用户varnish,也使用webs 作为附属组 useradd -G webs varnish
用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,mysql密码都是magedu
useradd -s /sbin/nologin mysql
echo magedu | passwd --stdin nginx
echo magedu | passwd --stdin varnish
echo magedu | passwd --stdin mysql
文件属性操作
chown 设置文件的所有者
chgrp 设置文件的属组信息
修改文件的属主和属组
修改文件的属主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
OWNER
OWNER:GROUP
:GROUP
命令中的冒号可用.替换
-R: 递归
chown [OPTION]... --reference=RFILE FILE...
修改文件的属组:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R 递归文件权限
文件的权限主要针对三类对象进行定义
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限
r: Readable
w: Writable
x: eXcutable
文件:
r: 可使用文件查看类工具获取其内容
w: 可修改其内容
x: 可以把此文件提请内核启动为一个进程
目录:
r: 可以使用ls查看此目录中文件列表
w: 可在此目录中创建文件,也可删除此目录中的文件
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录
X:只给目录x权限,不给文件x权限文件权限
修改文件权限
chmod [OPTION]... OCTAL-MODE FILE...
-R: 递归修改权限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
修改一类用户的所有权限:chmod [OPTION]... --reference=RFILE FILE...
参考RFILE文件的权限,将FILE的修改为同RFILE
新建文件和目录的默认权限
umask值 可以用来保留在创建文件权限
新建FILE权限: 666-umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1
新建DIR权限: 777-umask
非特权用户umask是 002
root的umask 是 022
umask: 查看
umask #: 设定
umask 002
umask –S 模式方式显示
umask –p 输出可被调用
全局设置: /etc/bashrc 用户设置:~/.bashrc
设定文件特定属性
chattr +i 不能删除,改名,更改
chattr +a 只能追加内容
lsattr 显示特定属性