linux 文件权限



前言

linux安全系统的核心是用户账户,用户对系统中各种对象的访问权限取决于登陆系统时的账户,用户权限通过UID来跟踪。


一、管理用户账户需要的文件和工具

1.1 /etc/passwd文件

/etc是Linux系统中的一个目录,用于存放系统配置文件。在Linux系统中,几乎所有的配置文件都存放在/etc目录下,这些配置文件都是系统级别的,用于系统的初始化、启动和运行。

/etc/passwd包含了与用户有关的信息,包括用户名、用户ID、用户组ID、用户家目录、默认shell等。该文件的格式为每行一个用户,使用冒号:分隔不同字段。

cat /etc/passwd
#output 
root:x:0:0:root:/root:/bin/bash
...
username:password:UID:GID:comment(用户账户的文本描述,即备注):home_directory(用户HOME目录位置):login_shell

系统账户是指在Linux系统中用于运行系统服务或进程的特殊账户,系统账户的UID(500以下的UID都是系统账户)通常是预留的;
在上面显示中用户密码都是 x ,其实用户密码都在/etc/shadow文件中

1.2 /etc/shadow

/etc/shadow文件是Linux系统中存储用户密码信息的文件,该文件的权限为-r--------,只有root用户和具有读权限的用户才能读取该文件。/etc/shadow文件的格式为每行一个用户,使用冒号:分隔不同字段。

username(用户的登录名):encrypted_password(表示用户的密码信息,已经被加密,是一个字符串,通常为13个字符):last_password_change(用户上次修改密码的时间,表示从1970年1月1日开始的天数):minimum_days_between_password_changes:maximum_days_between_password_changes(表示用户修改密码的最短时间间隔,单位为天):password_expiry_warning(用户密码过期前的警告时间,单位为天):account_inactive(用户账户失效前的不活动时间,单位为天):account_expiry_date(用户账户的过期时间,表示从1970年1月1日开始的天数):reserved_field(保留字段,目前没有任何作用)

1.3 添加、删除、修改用户 -useradd

在root用户下或使用sudo命令添加、删除新用户

sudo useradd newuser # 添加用户  -m:同时创建新用户的home目录
ls -al /home/newuser    # 查看新用户的home目录
sudo passwd newuser  # 设置密码
sudo userdel -r newuser # 删除用户在/etc/passwd的用户信息  -r:同时删除用户的home目录等

修改用户

usermod  用来修改/etc/passwd中的大部分字段
-c:修改用户的备注信息;
-d:修改用户的家目录;
-e:设置用户账户的过期日期;
-g:修改用户所属的主组;
-G:修改用户所属的附加组;
-l:修改用户的登录名;
-p:设置用户的加密密码;
-s:修改用户的默认shell。
sudo usermod -s /bin/bash testuser   # 将用户testuser的默认shell修改为/bin/bash
passwd  用于修改自己的密码或者其他用户的密码。修改密码时,需要先输入旧密码,然后输入新密码两次进行验证。passwd命令可以修改用户密码的加密方式,也可以设置密码过期时间、锁定用户账户等。
chpasswd  可以批量修改多个用户的密码。chpasswd命令的输入可以来自文件或者标准输入流,每行包含一个用户名和密码之间用冒号或空格分隔。
sudo chpasswd < userpass.txt
chsh   修改用户的默认登录shell,必需用shell的全路径名作为参数
sudo chsh -s /bin/bash testuser  # 将用户testuser的默认登录shell修改为/bin/bash

chfn   用于修改/etc/passwd文件中comment(用户账户的文本描述,即备注),通常是用户的个人信息,包括真实姓名、办公室电话、家庭地址等

chage命令用于修改用户的账户过期时间

二、组

用户账户在控制单个用户时较好,但在涉及共享资源的一组用户时就差点意思

2.1 /etc/group

/etc/group 是 Linux 系统中的一个文件,用于存储系统中的所有用户组信息。每个用户组都对应一行记录,记录中包含以下字段:

组名称:即用户组的名称,由小写字母、数字和特殊字符组成,长度不超过 32 个字符。
组密码:即用户组的密码,由加密后的密码字符串组成,长度不超过 16 个字符。如果用户组没有设置密码,则该字段为空。
GID:即用户组的 ID(Group ID),由一个非负整数表示,通常与组名称对应。系统中的每个用户组都有唯一的 GID。
组成员:即用户组的成员列表,由以逗号分隔的用户名组成。每个用户组至少包含一个成员,可以有多个成员。
如:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,username

不要修改/etc/group文件,可通过usermod添加用户到一个组

2.1 创建组、修改组

groupadd

sudo groupadd share
sudo usermod -G share test # 为share组添加成员test   -g 指定的组名会替换掉账户的默认组,-G 将该组添加到用户的属组列表中
tail /etc/group  # 查看组

groupmod

sudo groupmod -n shared share    -n 修改组名,-g 修改GID 

三、文件权限

ls -l
-rw-r--r-- 1 user user 0 Aug 28 15:30 file.txt

第一个字符:表示文件的类型,包括以下几种类型:
-:普通文件
d:目录
l:符号链接文件
c:字符设备文件
b:块设备文件
s:套接字文件
p:命名管道文件
读(r)、写(w)和执行(x)
对象属主、对象属组、其他用户

八进制模式的安全设置:获取rwx权限的值,转换为二进制值,再用八进制值来表示,如r–就是100也就是4。对文件来说,全权限的值就是666(读和写);目录则是777(读、写和执行)。

umask 设置文件和目录的默认权限;Linux 系统中新建的文件权限是 666,新建的目录权限是 777。如果当前的 umask 值为 022,则新建文件的实际权限为 644,新建目录的实际权限为 755,相减

umask 022

四、改变安全性设置

改变目录或文件的权限、默认文件属主、默认属组

4.1 改变权限

chmod 命令用于修改文件或目录的权限

chmod 权限 文件或目录...

数字表示法:一般用三个八进制数来表示,每个数分别表示用户、用户组和其他用户的权限。

chmod 760 test

符号表示法:用符号来表示权限,包括以下几种符号:
u:表示用户。
g:表示用户组。
o:表示其他用户。
a:表示所有用户。
+:添加权限。
-:去除权限。
=:设置权限。

chmod go-w file.txt  用户组和其他用户去除写的权限

4.2 改变所属关系

chown 修改文件或目录的所有者或所属用户组

chown [所有者][:所属用户组] 文件或目录...         # 所有者 表示要设置的所有者,可以是用户名或用户 ID;所属用户组 表示要设置的所属用户组,可以是用户组名或用户组 ID; 如果只想修改所有者或所属用户组中的一个,可以将另一个省略
chown user1:group1 file.txt  # 改变属主和属组
chown user1 file.txt         # 改变属主
chown .group1 file.txt       # 改变属组
chown user1. file.txt        # 将属主和属组都设为user1

chgrp 修改文件或目录的所属用户组

chgrp 用户组 文件或目录...
chgrp group1 file.txt

五、共享文件

创建组可以再linux系统上共享文件,在目录的属组间可以通过设置SGID进行文件共享

设置组 ID(SGID): 当一个用户在一个 SGID 目录中创建新文件或目录时,新文件或目录的所属用户组将被设置为 SGID 目录的默认所属用户组

# 创建一个共享目录,使目录里的新文件都能沿用目录的属组
mkdir testdir  # 创建目录
ls-l   # 查看目录权限
chgrp shared testdir # 更改目录属组
chmod g+s testdir  # 改变目录权限,设置SGID,g+s;
ls-l   # 查看目录属组及权限信息
umask 002 # 设置所有组成员可写文件,即文件对属组是可写的
cd testdir   # 在testdir下创建文件看一下权限
touch testfile 
ls -l   # 新文件会沿用目录的属组而不是用户的默认属组,现在shared组的所有用户都能访问这个文件

总结

linux用户的添加、修改;文件权限;文件在属组间共享、文件在目录的属组间共享

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值