Linux权限管理常用命令

在Linux系统中,我们经常需要对文件改些权限,例如为了增加安全性改个属主属组啥的,或是访问权限,这是很常见的情况,所有我们需要了解一下几三个命令:chown,chgrp,chmod,umask

       在上篇博文(Linux文件管理常用命令)最后我们简单讲解了一下文件属性,如有的地方不是很明白,就看这篇博文中有介绍

一、chown(change owner)

chown - change file owner and group        # 修改文件的属主和属组

SYNOPSIS
       chown [OPTION]... [OWNER][:[GROUP]] FILE...
       chown [OPTION]... --reference=RFILE FILE...
       -R: 递归修改子目录属主和属组
	   --reference=/path/to/somefile:依据某文件修改文件属主和属组
       
[[email protected] ~]# ll
total 8
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh

(1).只修改用户的属主

[[email protected] ~]# chown mysql iptables.sh     # 修改文件的属主为mysql
[[email protected] ~]# ll
total 4
-rwxr-xr-x 1 mysql root 518 Nov  1 20:02 iptables.sh

(2).同时修改属主和属组

[[email protected] ~]# chown apache.apache iptables.sh     # 修改文件的属主和属组都为apache
[[email protected] ~]# ll
total 4
-rwxr-xr-x 1 apache apache 518 Nov  1 20:02 iptables.sh

(3).递归修改目录及其子目录下所有文件的属主和属组

[[email protected] ~]# chown -R mysql:mysql  test/       # 递归修改test下所有文件的属主和属组
[[email protected] /]# ll /test/
total 4
-rw-r--r-- 1 mysql mysql   0 Nov  6 16:33 a
-rw-r--r-- 1 mysql mysql   0 Nov  6 16:33 b
-rw-r--r-- 1 mysql mysql 208 Jul  6 13:41 id_rsa_1024.pub

(4).参考其他文件来修改文件属组属组

[[email protected] test]# ll
total 4
-rw-r--r-- 1 mysql mysql 208 Jul  6 13:41 id_rsa_1024.pub        # 此文件原先的属主属组为mysql
[[email protected] /]# ll /etc/passwd                
-rw-r--r-- 1 root root 1592 Nov  5 15:55 /etc/passwd     # passwd文件属主和属组为root
[[email protected] test]# chown --reference=/etc/passwd  id_rsa_1024.pub # 参考passwd来修改id_rsa_1024.pub
[[email protected] test]# ll id_rsa_1024.pub 
-rw-r--r-- 1 root root 208 Jul  6 13:41 id_rsa_1024.pub        # 此时属主属组都已经改为了root
[[email protected] ~]# chown  testuser iptables.sh  # 修改文件的属主为一个不存的用户testuser
chown: `testuser‘: invalid user

二、chgrp(change group)

chgrp - change group ownership        # 只能修改文件的属组

SYNOPSIS
       chgrp [OPTION]... GROUP FILE...
       chgrp [OPTION]... --reference=RFILE FILE...
 
[[email protected] ~]# chgrp root iptables.sh      # 修改文件的属组为root
[[email protected] ~]# ll
total 4
-rwxr-xr-x 1 apache root 518 Nov  1 20:02 iptables.sh

三、chmod(change mode)

 chmod - change file access permissions            # 修改文件的访问权限

 SYNOPSIS
       chmod [OPTION]... MODE[,MODE]... FILE...
       chmod [OPTION]... OCTAL-MODE FILE...
       chmod [OPTION]... --reference=RFILE FILE...
       
[[email protected] ~]# ll
total 4
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh
r

权限分为3类:文件属主,文件属组,其他用户 

例如rwxr-xr-x其中三位为一组权限,分别为
    文件属主的权限:rwx,可读,可写,可执行
    文件所属组的权限:r-x,可读,不可写,可执行
    其他用户的权限:r-x,可读,不可写,可执行

权限:read, write, execute
	  r, w, x

	  文件:
			r: 可以使用内容查看类的命令来显示其相关内容
			w: 可以使用文本编辑器修改其内容
			x: 可以将其发起一个进程

	  目录:
			r: 可以使用ls命令查看目录内容的文件信息
			w: 可以创建、删除文件
			x: 可以使用ls -l命令查看目录内容的文件信息,并且可以使用cd命令切换进此目录

(1).数字表示法

 ---:0    不可读不可写不可执行
 --x:1    不可读不可写可执行
 -w-:2    不可读可写不可执行
 -wx:3    不可读可写可执行
 r--:4    可读不可写不可执行
 r-x:5    可读不可写可执行
 rw-:6    可读可写不可执行
 rwx:7    可读可写可执行
 
[[email protected] ~]# ll
total 4
-rwxr-xr-x 1 root root 518 Nov  1 20:02 iptables.sh   # 现在的权限换成数字表示就是755
[[email protected] ~]# chmod 600 iptables.sh     # 修改此文件的权限为600
[[email protected] ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh

(2).字母表示法

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

[[email protected] ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh
[[email protected] ~]# chmod +x iptables.sh  # 为所有用户添加可执行权限,此时可以a可以省略
[[email protected] ~]# chmod u=rwx,go=r  iptables.sh     # 修改iptables.sh文件权限为744
[[email protected] ~]# ll
total 8
-rwxr--r-- 1 root root  518 Nov  1 20:02 iptables.sh

四、umask(遮罩码)

(1).创建文件默认权限:666-umask

ps:文件默认决不允许出现执行权限,即使666-umask后算出来文件有执行权限的话,也会被去掉可执行权限

[[email protected] ~]# umask             # root用户默认umask为022,至于为什么看后面总结
0022        
[[email protected] ~]# umask 023         # 临时修改umask值为023
[[email protected] ~]# touch testfile
[[email protected] ~]# ll
total 4
-rw------- 1 root root 518 Nov  1 20:02 iptables.sh
-rw-r--r-- 1 root root   0 Nov  6 16:01 testfile  # 本应该是643的权限,此时也会+1变为644

(2).创建目录默认权限:777-umask

[[email protected] ~]# umask             # 默认umask为022
0022
[[email protected] ~]# mkdir testdir        # 新建一个空目录
[[email protected] ~]# ll
total 8
-rw------- 1 root root  518 Nov  1 20:02 iptables.sh
drwxr-xr-x 2 root root 4096 Nov  6 16:05 testdir        # 此新目录权限为777-022为755

总结:

  • 修改属主和属组时,所对应的属主或者属组必须得存在,不存在时则会报错
  • 如果用户名和基本组组名一致的话,umask值为002;否则为022
  • chown和chmod都可以使用一下两个选项:①-R  ②--reference=/path/to/somefile
时间: 2025-01-02 15:51:31

Linux权限管理常用命令的相关文章

linux日常管理常用命令--w

linux日常管理常用命令--w 命令:w(linux管理员最常用的命令) [[email protected] ~]# w 14:45:41 up 2 min,  2 users,  load average: 0.10, 0.10, 0.04 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT root     tty1     -                14:44   54.

linux系统进程管理——常用命令总结

进程管理:1.程序和进程的关系:    程序是为了完成某种任务而设计的软件,比如LibreOffice是程序    进程就是运行中的程序:运行中的程序是程序的一个副本,存在着生命周期:    一个运行着的程序,可能有多个进程.尤其是作为服务进程,在为了响应多个访问时会创建多个进程来对其进行服务:    Linux内核存储进程信息的固定格式:task struct:    多个任务的task struct组件的链表:task list: 2.进程分为交互进程(用户.前台进程).批处理进程和守护进程

【Linux基础 07】Linux远程管理常用命令

目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时间 shutdown 关机/重新启动 1.1 shutdown shutdown 命令可以 安全 关闭 或者 重新启动系统 选项 含义 -r 重新启动 提示: 不指定选项和参数,默认表示 1 分钟之后 关闭电脑 远程维护服务器时,最好不要关闭系统,而应该重新启动系统 常用命令示例 # 重新启动操作系

Linux远程管理常用命令

关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时间 shutdown 关机/重新启动 1.1 shutdown shutdown 命令可以 安全 关闭 或者 重新启动系统 选项 含义 -r 重新启动 提示: 不指定选项和参数,默认表示 1 分钟之后 关闭电脑 远程维护服务器时,最好不要关闭系统,而应该重新启动系统 常用命令示例 # 重新启动操作系统,其

Linux用户管理常用命令

这篇我们讲一讲用户管理的相关内容,涉及到/etc/passwd,/etc/shadow,/etc/group三个用户账号相关的文件以及以下用户管理相关的命令:useradd, usermod, userdel, passwd, groupadd, groupdel, id, su, chage, chfn, chsh, newgrp, gpasswd. 一.passwd文件 ①account:用户名 ②password:密码占位符 ③UID:用户ID号 ④GID:基本组ID号 ⑤GECOS:注释

ubuntu权限管理常用命令

1.chmod 第一种方式 chomd [{ugoa}{+-=}{rwx}] [文件或者目录] u 代表该文件所属用户 g 代表该文件所属用户组 o 代表访客 a 代表所有用户 +-=分别表示增加权限,减少权限或者赋予权限 让所有用户对t2.tmp文件具有写权限: 第二种方式: chmod [mode=421] [文件或者文件夹] 4 表示读权限 2表示写权限 1表示执行权限 比如:让文件所属用户具有所有权限,所属组具有读和执行权限,其他人具有执行权限,那么可以这么设置: 关于rwx的理解: 2

linux用户管理常用命令总结

useradd user2 添加用户user2 useradd -u 1004 -g   grp2 user3 添加用户指定uid,并添加到grp2组 useradd -u 1005 -g   grp2 -d /home/aiker11 -s /sbin/nologin user4 添加用户并指定uid,组,家目录,禁止登录shell useradd -M user5 创建用户,不创建家目录 groupadd -g 1010 grp3 创建用户组并指定gid adduser user8 创建用户

linux系统-用户管理-常用命令

linux系统-用户管理-常用命令 一 用户 1 useradd 用户名 [-参数].. 2 passwd 改密码 3 usermod 修改用户的信息 [-G 添加用户到用户组] [-L禁用用户][-U恢复用户] 二 用户组 1 groupadd 组名 [-参数] 添加用户组 2 groupdel  删除用户组 3 groupmod 设置信息 三 用户与用户组 1 添加用户到用户组:gpasswd -a 用户组 用户 2 用户组删除用户:gpasswd -d 用户 3 设置用户组管理员:gpas

Linux学习-用户管理常用命令

用户管理常用命令 useradd 新建用户 userdel 删除用户 passwd 修改用户密码 usermod 修改用户属性 chage 修改用户属性 Linux 分为 root 用户和普通用户两种 当用户被添加后,底层做了什么 当用户被创建后,它的家目录是在 /home/用户名 这个下面 当用户被创建后,会被添加到 /etc/passwd 这个文件中,通过下面命令可以查询 # tail 10 /etc/passwd 可以找到新建的用户 当用户被创建后,会被添加到 /etc/shadow 这个