Linux常用命令-权限相关
Linux权限简单点说就是:谁拥有文件/文件夹的什么权限。
首先说一下基本概念:
Linux里面文件权限身份有三种:owner、group、others,分别表示文件所属者,文件所属用户组,其他用户。
权限分为三种:r 、w 、x,分别是读、写和执行权限,对应的数值分别是4、2、1。举例7=4+2+1表示拥有所有权限,6=4+2表示拥有读和写得权限,3=2+1表示拥有写和执行的权限。777表示这个文件,其所属者、所属用户组和其他用户都拥有所有权限。
一般ls -l 查看文件的详细信息,显示如下:
- 第1列为权限
- 第2列为链接,表示有多少文件名链接到此节点(i-node)
- 第3列为owner
- 第4列为group
- 第5列为文件大小
- 第6,7,8列为文件修改日期
- 第9列为文件名
权限列需要讲一下含义:
d
则是目录-
则是文件l
则表示为链接文件b
则表示为设备文件里面的可供储存的周边设备(可随机存取设备);c
则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
1、用户、用户组相关
-
查看所有用户
所有的用户信息存在于/etc/passwd下,可以通过cat命令查看
cat /etc/passwd
-
查看单个用户信息
id userName
-
切换用户
比较常用的就是切换到超级管理员:su root
su userName
-
创建用户
-m表示在home目录下,为用户创建一个同名文件夹,初始创建的用户没有密码,需要用到passwd命名设置/修改密码。
useradd -m username
一般搭配 usermod -s /bin/bash username (指定shell,否则会非常不便于终端操作,很多命令无法使用)
-
设置/修改密码
新增的用户需要输入密码,然后确认密码即可。
passwd username
-
删除用户
删除用户,-r表示删除用户创建的文件(注意使用防止误删)
userdel username
-
查看用户组
用户组信息存在于/etc/group,通过cat查看
一般格式如下:X:Y:Z:M
X表示用户组名称,Y表示密码位,Z表示组ID(gid),M表示属于这个组的用户
-
增加用户组
通过cat /etc/group
查看所有的用户组,-g(gid)指定组的ID
groupadd groupName
-
删除用户组
用来删除用户组,-f表示强制
groupdel groupName
-
修改用户所属用户组
1、usermod,-G(groups)是将用户附加到其他组,同时附加到多个组可以通过英文逗号隔开,组名称或者组ID都可以;-g(gid)表示将用户附加到主组,一个用户只能属于一个主组。
usermod -G group1,group2 userName
usermod -g group userName
2、gpasswd,一次只能操作单个组,只能是组名称,不能是组ID
把用户添加到组中
gpasswd -a userName groupName
把用户从组中移除
gpasswd -d userName groupName
2、文件、文件夹权限相关
-
修改文件所属用户、用户组
1、chown修改文件所属用户和用户组,一般需要采用sudo,或者切换到root用户修改,-R表示递归将下面所有的文件和文件夹的所属者修改。
如果sudo提示 "xxx is not in the sudoers file",需要切换到root,然后vim /etc/sudoers,找到“root ALL=(ALL) ALL”一行,在下面插入新的一行,内容是“userName ALL=(ALL) ALL”,然后在vim键入命令“:wq!”保存并退出。
chown userName fileName
chown -R userName:groupName fileName
2、chgrp只修改文件所属用户组,-R表示递归修改子文件和子文件夹的所属组
chgrp groupName fileName
-
修改文件的所属用户、用户组的权限
chmod修改文件的权限,从上面知道文件权限有三种:r(read)、w(write)、x(execute),表示读、写和执行;文件权限身份有三种:所属者、所属组和其他组,分别由u(user)、g(group)、o(others)、a(all))表示。-R表示递归修改子文件和子文件夹的文件权限。
1、同时处理所有身份的权限:7表示给文件所属者赋予所有的权限,5表示给所属用户组赋予读和执行的权限,4表示给其他组赋予读的权限,-R表示处理子文件和子文件夹
chmod -R 754 fileName
2、处理单独身份的权限:-表示删除权限,+表示增加权限,其中u-x表示删除文件所属者的执行权限,u+r表示增加所属者读的权限,g-w表示删除所属组得写权限。
chmod -R u-x fileName
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通