您的位置:首页 > 运维架构 > Linux

Linux之用户及文件权限管理

2015-12-12 11:36 537 查看
Linux之用户及文件权限管理
前言:Linux 是一个多用户的操作系统;Linux哲学思想之一—“一切皆文件”。说明在学习Linux过程中,用户及文件权限的管理是非常重要滴。本文主要是引用了CentOs/RedHat 7.1的命令。

一.用户、组管理 1).用户、组类型:
超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户、分配权限)时用到;由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录。
普通用户:为了能让使用者能调用系统资源以及使用某些应用程序时建立的,一般情况下都使用普通用户登录系统。
管理员组:管理的专用组,指root组
普通用户组:普通用户的组,容器,一个组可包含多个用户,一个用户可对应多个组
系统组:系统自动创建的组 私有组:即基本组,在创建用户时未指定用户组的时候自动创建的与用户名的组。
2).用户、组标识:
UID(UserID):Linux系统不认识用户名,只认识用户ID号;所以每个用户都具有一个ID号。
UID表示为16bits二进制数字:0-65535
管理员的ID号:0
普通用户:1-65535
系统用户:1-999
登录用户:1000-60000
用户与ID号可以在/etc/passwd中查看。
组标识: GID(GroupID):每个组对应的ID号。
管理员组:0 普通用户组:1-65535 系统用户组:1-999 登录用户组:1000-60000 组和组ID号可以在/etc/group中查看。
3).用户、组配置文件:/etc/passwd、/etc/group
passwd中每行共有7列,分别是:用户名:密码:UID:GID:说明信息:组目录:用户登录shell。
group中每行共有4列,分别是:组名:密码:GID:该组用户成员。

4).用户、组密码文件:/etc/shadow、/etc/gshadow
shadow中每行共有7列,分别是:用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:过期期限:保留时间
gshadow中每行共有4列,分别是:组名:加密的密码:管理组:该组用户成员

5).用户、组管理命令总结: useradd、usermod、userdel、groupadd、groupmod、groupdel、passwd、gpasswd、chage、chsh、id、su、who、w、whoami 注:下文只包含以上命令的常用选项说明,若需要具体说明信息请查看man file
useradd:创建用户
useradd [选项] 登录名 -u:指定UID
-g:指定基本组ID,基本组必须存在
-G:指定附加组ID
-s:指定用户登录shell
usermod:修改用户信息 usermod [选项] 登录名 -u:修改用户UID号 -g:修改用户所属基本组 -G:覆盖原来所属的附加组 -aG:追加附加组 -L,-U:锁定与解锁用户密码 userdel:删除用户 userdel [选项] 登录名 -r:删除用户及其家目录 groupadd:添加组 groupadd [选项] 组名 -g:指定GID
groupmod:修改组信息 groupmod [选项] 组名 -g:修改GID
-n:修改组名 groupdel:删除组 groupdel [选项] 组名
passwd:设置用户密码
passwd [选项...] <帐号名称> -d:删除已命名帐号的密码 -l:锁定指名帐户的密码 -u:解锁指名账户的密码 -e:过期期限,日期 -i:非活动期限 -n:密码的最短使用期限 -x:密码的最长使用期限 -w:警告期限 --stdin:从标准输入读取密码 gpasswd:设置组密码
gpasswd [选项] 组 -a:向组中添加用户 -d:从组中移除用户 chage:更改用户密码过期信息 chage [选项] 登录名 -d:将最近一次密码设置时间设为“最近日期” -m:将两次改变密码之间相距的最小天数设为“最小天数” -M:将两次改变密码之间相距的最大天数设为“最大天数” -W:将过期警告天数设为“警告天数” chsh:改变登录shell chsh [选项] [用户名] -s:指定登录 shell id:显示用户的有效ID id [OPTION]... [USER] -u: 显示有效的UID
-g: 显示用户的基本组ID -G:显示用户所属的所有组的ID su:切换用户
su [选项] [-] [USER [参数]...] -,-l:登录式切换
who:显示当前已登录的用户信息 who [选项]... [ 文件 | 参数1 参数2 ] -b:上次系统启动时间 -d:显示已死的进程 -q:列出所有已登录用户的登录名与用户数量 -r:显示当前的运行级别 w:显示登录用户和正在执行的程序 w [options] whoami:显示与当前的有效用户ID 相关联的用户名 whoami [选项]...

二.文件权限管理

1).Linux文件类型
-:常规文件
d:目录文件
b:块设备文件,支持以“block”为单位进行随机访问
c:字符设备文件,支持以“character”为单位进行线性访问
l:符号链接文件
p:命名管道
s:套接字文件
2).Linux文件属性

例:ls -l(以长格式查看当前目录下的文件信息)出现下面内容
“drwxrwxrwx”

含义:

我们把以上的字段切割为4个部分

第一部分:第一个字符d,表示Linux文件类型,上面有说明

第二部分:第一组rwx三个字符,代表用户权限

第三部分:第二组rwx三个字符,代表用户所属组的权限

第四部分:第三组rwx三个字符,代表其它用户的权限

权限说明:

r:read 读取权限;w:write 写入权限 x:excutable 执行权限
在8进制中,r、w、x、分别代表:4、2、1;记住就行

针对文件:
r:可获取文件的数据
w: 可修改文件的数据

x:可将此文件运行为进程
针对目录:
r:可使用ls命令获取其下的所有文件列表
w: 可修改此目录下的文件列表;即创建或删除文件
x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息
3).文件操作命令简述:
ls、mkdir、touch、rmdir、rm、mv、cd、cp、more、less、head、tail、 cat、tac ......
ls:列出文件或目录相关信息 ls [选项]... [文件]...
-a: 显示所有文件,包括隐藏文件
-A:显示除.和..之外的所有文件
-l: --long, 长格式列表,即显示文件的详细属性信息
-h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值
-d:查看目录自身而非其内部的文件列表
-r: reverse, 逆序显示
-R: recursive,递归显示
mkdir:创建目录

mkdir [选项]... 目录...
-p: 自动按需创建父目录
-v:显示详细过程
-m:直接给定权限
touch:创建文件

touch [选项]... 文件...

-c: 指定的文件路径不存在时不予创建
-a: 修改access time
-m:修改modify time
rmdir:删除指定的空目录
rmdir [选项]... 目录...
-p:如果父目录为空,一并删除;
-v: 详细执行过程;
rm:删除文件或目录

rm [选项]... 文件...
-i:删除前提示
-f:强制删除
-r: 递归删除
-rf:请慎用 mv:移动

mv [源文件或目录] [ 目的目录]
-i:交互式
-f:强制
cd:切换目录
cd [ 目录]
cp:复制
cp [选项]...源...目标
-i:交互式复制,即覆盖之前提醒用户确认
-f:强制覆盖目标文件
-r, -R:递归复制目录
more:分页浏览文本文件
more 文件名
less:分页浏览文本文件
less 文件名

head:查看文本首部
head [选项] 文件名
-n:指定行数

tail:查看文本尾部

tail [选项] 文件名 -n:指定行数 cat:查看文本内容
cat [选项]... [文件名]...
-n:给显示的文本行编号
tac:查看文本内容倒序
tac [选项]... [文件名]...

-n:给显示的文本行编号 4).文件目录权限管理命令:
chmod、chown、chgrp chmod:用于改变文件或目录的访问权限,用它控制文件或目录的访问权限
命令格式三个:
1.chmod [选项]...模块[,模块]...文件名...
2.chmod [选项]...八进制-模块 文件名...
3.chmod [选项]...--reference=参照文件名 目标文件名...
举例说明:

1.chmod [u、g、o、a] [=、+、-] [r、w、x] 文件名

u:属主、g:属组、o:其他用户、a:所有

2.chmod [777] 文件名
777=rwx:上面有说明

3.chmod --reference=源文件(想要参照的文件路径) 目标文件名

--reference :参考,引用

chown:用于改变用户属主、属组 1.chown [选项]... [属主][:[属组]] 文件名...
2.chown [选项]... --reference=参照文件名 目标文件名...
-R:递归修改
举例说明:
1.chown root:root 文件名
2.chown --reference= 源文件(想要参照的文件路径) 目标文件名

chgrp:修改文件用户组
chgrp [选项]... 属组 文件名...
chgrp [选项]...--reference=参照文件名 目标文件名...

以上是个人暂时总结出来的命令,如有遗漏请补充;谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息