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

Linux 用户身份和文件权限

2018-01-26 17:54 453 查看
用户身份与文件权限

用户身份与能力:
Linux管理员之所以是root,不是因为它的名字,而是因为该用户的身         份号码是UID(user IDentification)的数值是0,在liunx中UID相当      于我们的身份证号码一样具有唯一性,因此可通过用户的UID的值来判断       用户身份。在RHEL7系统中,用户身份有以下这些:

系统管理员UID为0:系统的管理员用户

系统用户UID为1~999:liunx系统为了避免某个服务程序出现漏洞            被黑,而默认服务程序会有独立的系统用户负责运行,控制了被破坏              的范围

普通用户UID从1000开始:是由管理员创建的日常工作用户

useradd命令:
用于创建新的用户,格式“useradd【选项】 用户名”
默认的用户家目录是被存放在/home目录中
默认的解释器就是/bin/bash
默认会创建一个与该用户同名的基本用户组

参数:
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为:YYYY-MM-DD
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已经存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
例如:
useradd -d /home/liunx -u 8888 -s /sbin/nologin user1
id user1
//注意使用的是/sbin/nologin这是表示该用户不能登录到系统中
//::/sbin/nologin也是终端解释器中的一员

groupadd命令:
groupadd创建用户组 格式为:groupadd [选项] 群组名
例如:创建一个用户组ronny
groupadd ronny

usermod命令:
usermod修改用户属性 格式为:usermod [选项] 用户名
用户信息保存在/etc/passwd文件中
vim可以修改其中的用户参数项目,
usermod修改已经创建的用户信息,UID、基本/扩展用户组、默认终端

参数:
-c 填写用户账户的备注信息
-d -m 参数-m与-d连用,重新指定用户的家目录并自动把旧             的数据转过去
-e 账户的到期时间 ,格式为YYYY-MM-DD
-g 更变所属用户组
-G 更变扩张用户组
-L 设定用户禁止登录系统
-U 解锁用户,允许登录
-s 变更默认终端
-u 修改用户的UID

例如:
查看用户信息
id user1
然后将用户user1加入到root用户组中,这样扩展组列表则会
出现root用户组的字样,而基本组不受影响
例如:
usermod -G user1
4000

id user1
在加入-u参数修改用户的UID号码值。
例如:
usermod -u 10000 user1
id user1

passwd命令:
用于修改用户的密码、过期时间、认证信息等
格式为:passwd【选项】【用户名】

普通用户只能使用它来修改密码,
root可以修改其他所有人密码
root管理员修改他人或者是自己的密码不需要验证旧密码

参数:
-l 锁定用户,禁止登录
-u 解锁,允许登录
--stdin 允许通过标准输入修改用户的密码
例如:echo "newpasswd" | passwd --stdin username
-d 是该用户可用空密码登录系统
-e 强制用户在下次登录是修改密码
-S 显示用户的密码是否被锁定,已经密码所使用的加密算法名称

例如:
passwd
//下面输入你的密码
//确认密码
passwd username
//修改用户的密码
//再次确认密码

//禁止某个用户登录系统
passwd -l username
//查看是否锁定
passwd -S username
//解锁
passwd -u username
passwd -S username

userdel命令:
用于删除用户,格式"userdel[选项] 用户名"

参数:
-f 强制删除用户
-r 同是删除用户和用户家目录

例如:
id username
userdel -r username
id username


文件权限与归属:

-:普通文件

d:目录文件

l:链接文件

b:块设备文件

c:字符设备文件

p:管道文件

目录文件的权限:
r:能够读取目录内文件的列表
w:能够在目录内新增、删除、重命名文件
x:能够进入该目录
文件读写执行权限简写为:rwx(数字表示:4,2,1)
例如:
764:rwxrw-r--
642: rw--w--wx
153: --xr-x-wx

文件信息实例:
ls -l install.log
-rw-r--r-- 1 root root 34298 04-02 00:23 install.log
开头的-:文件类型(这里是普通文件)
rw-r--r--:访问权限(所有者读写,所属组读,其他人读)
第一个root:所有者
第二个root:所属组
34298:占用磁盘大小
04-02 00:23:修改时间
install.log:文件名称


文件的特殊权限:

Set UID

SUID():可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的 二进制程序有效)

所有的用户可以执行passwd修改自己的密码,而用户的密码保存在/etc/shadow

中。你会发小/etc/shadow的权限为000,表示只有root能查看,但是使用 passwd命令是如果加上SUID特殊权限是,就可以让普通用户临时获得所有者的身 份,把变更密码的信息些人到shadow文件中

如果原先权限位没有x执行权限,那么赋予特殊权限后变成大写的S

例如:

ls -l /etc/shadow

//可以看到为-r——–

ls -l /bin/passwd

//-rwSr-xr-x

SGID:
1.让执行者有所属组的权限(仅对拥有执行权限的二进制程序有效)
2.在某个目录中创建的文件自动继承该目录的用户组(只针对目录)

假设一个文件权限为cr--r-----
这里除了root和属于system组的成员外,其他人都没有读取该文件的权限

当我们查看系统进程状态的ps命令文件上增加SGID特殊权限位时:
ps命令文件属性信息:
-r-xr-Sr-x
这样,由于ps命令被增加了SGID特殊权限位,所以当用户执行该命令时,
也获取到了system用户组的权限,可以读取设备文件了

每个文件都有其归属的所有者和所属组,当创建或者是传送一个文件后
这个文件就会自动归属于执行这个操作的用户(即该用户是文件的所有者)
我们想要多个人都能读取到这个文件,那么可以在共享目录后,设置SGID
特殊权限位。这样任何人创建的任何文件都属于该目录的所属组,不在是自
己的基本用户组
例如:
cd /tmp
mkdir testdir
ls -ald testdir/
drwxr-xr-x 2 root root 6
chmod -Rf 777 testdir/(改变权限任何人能读能写能执行)
chmod -Rf g+s testdir/(添加特殊权限)
ls -ald testdir/
drwxrwsrwx

测试:
su - username
cd /tmp/testdir
echo "linux is my life!" > test
ls -al test
-rw-rw-r--

chmod能够设置文件或者目录的权限 格式:chmod [参数] 权限 文件或者目录名
例如:
ls -al test
-rw-rw-r--
chmod 760 test
ls -l test
-rwxrw----

chown能够设置文件或者目录的所有者和所属组
格式:chown【参数】 所有者:所属组 文件或者目录名

chmod和chown加上参数[-R]表示递归操作,对目录内所有的文件修改
例如:
ls -l test
-rwxrw---- username root
chown root:bin test
ls -l test
-rwxrw---- root     bin

SBIT:能够确保用户只能删除自己的文件,而不能删除其他用户的文件
当设置了SBIT就只能被所有者操作了
当目录设置为SBIT特殊权限后,文件的其他人权限部分的x就会被替换为t或者是T     原本有x执行权限,则会写成t
原本没有x执行权限,就会写成T
例如:
su - username
ls -ald /tmp
cd /tmp
ls -ald
echo "Welcome to linux" > test
chmod 777 test
ls -al test

//现在尝试删除
su - user1
cd /tmp
rm -f test
//提示说不能被删除

如果要对其他目录设置SBIT权限,用chmod就可以了
对应参数o+t代表设置SBIT权限:
exit
cd ~
mkdir linux
chmod -R o+t linux/
ls -ld linux/
drwxr-xr-t

//补充
4为SUID
2为SGID
1为SBIT
操作:
数字操作:
cd /tmp
touch test
chmod 4755 test//加入SUID
chmod 6755 test//加入SUID和SGID
chmod 1755 test //加入SBIT
字母操作:
SUID:u+s
SGID:g+s
SBIT:o+t
chmod g+s,o+t test;//加上SGID和SBIT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件权限