Linux学习笔记--用户文件及权限
I.用户操作
I.1查看用户
'who am i','whoami','who -m'均可查看(who的用法还有很多,具体可以用'who --help'指令了解)
I.2创建用户
root权限 在Linux系统中有着至高无上的权限,比如新建和添加用户等。su <user>
可以切换到用户 user,执行时需要输入目标用户的密码,sudo <cmd>
可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - <user>
命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。
新建一个叫lilei的用户
sudo adduser lilei
用户设置密码后(Linux系统下密码输入是看不到任何内容的)的一些内容可以直接用回车设置为默认值。这个命令也会为用户在/home目录下创建一个工作目录
使用新建的用户登录时,用如下命令
su -l lilei
退出当前用户可以用命令exit或者快捷键Ctrl+D
I.3用户组
在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多。我们可以通过以下方法来了解自己属于哪些用户组
方法一:使用groups命令
groups shiyanlou(‘shiyanlou’为用户名称)
每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。默认情况下在 sudo 用户组里的可以使用 sudo 命令获得 root 权限。shiyanlou 用户也可以使用 sudo 命令,为什么这里没有显示在 sudo 用户组里呢?可以查看下 /etc/sudoers.d/shiyanlou
文件,我们在 /etc/sudoers.d
目录下创建了这个文件,从而给 shiyanlou 用户赋予了 sudo 权限。
方法二:查看 /etc/group
文件
cat /etc/group | sort
输入命令后你可以看到一大堆输出,在最下面可以看到shiyanlou的用户组名称
如果没有找到,也可以用grep命令过滤一些结果
cat /etc/group | grep -E "shiyanlou"
I.4将其他用户加入sudo用户组
默认情况下新创建的用户是不具有root权限的,也不在sudo用户组。可以让其加入sudo用户组从而获得root权限
使用usermod命令可以为用户添加用户组,同样,使用该命令需要有root权限
//此处命令为有root权限的用户输入
groups dky sudo usermod -G sudo dky groups dky
//“dky”为不具root权限的用户
然后切换到dky用户,就可以用sudo命令获得root权限了
I.5删除用户和用户组
删除用户的命令
sudo deluser lilei --remove-home
删除用户组可以用groupdel命令,如果该群组中仍有某些用户,需要删除掉这些用户后才能删除该群组
II.文件权限及操作
Unix/Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux 系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。
在 Unix/Linux 中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录
II.1查看文件权限:
ls -l
最后一项是文件名,那么其他项分别是什么意思呢?
一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,
II.2变更文件所有者
切换到 dky 用户,然后在 /home/dky目录创建一个文件,命名为iphone11
su - dky
pwd
touch iphone11//创建文件
ls -alh iphone11
切换回lilei用户,使用以下命令将文件所有者改为lilei
# 需要切换到 lilei 用户执行以下操作 cd /home/dky ls iphone11 sudo chown lilei iphone11
II.3修改文件权限
如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改。
方法一:
chmod 600 iphone11 ls -alh iphone11
方法二:
chmod go-rw iphone11
g
、o
还有 u
分别表示 group(用户组)、others(其他用户) 和 user(用户),+
和 -
分别表示增加和去掉相应的权限。
原文地址:https://www.cnblogs.com/xtl3906/p/15314197.html
- Django-认证系统
- javascript:双链表-插入排序
- javascript:二叉搜索树 实现
- 自然语言处理 语言模型介绍
- 口水先擦干!从大数据看外卖如何拯救“忙”与“宅”
- javascript:巧用eval函数组装表单输入项为json对象
- Django——model基础
- java学习:日期的运算
- ORACLE:写Function时,传入参数变量名的注意事项
- spring boot 登录注册 demo (二) -- 数据库访问
- spring boot 登录注册 demo (三) -- 前后端传递
- python装饰器大详解
- spring boot 登录注册 demo (四) -- 体验小结
- jenkins 时区设置
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- jQuery 事件注册和事件处理
- 10.5 块级盒子模型(原盒子模型):两种盒子有什么不同?
- Android Material UI控件之MaterialButton
- jQuery (事件、拷贝)对象
- 10.6 border-color简写属性:如何理解四值语法?
- jQuery 插件
- dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人
- 10.7 border-width边框粗细:outline与border有什么不同?
- WPF 非客户区的触摸和鼠标点击响应
- Flink 解决 No ExecutorFactory found to execute the application
- 10.8 如何用js验证一下boz-sizing样式对块级盒子大小的影响?
- 10.9 块级盒子的内外边距:如何使用box-sizing重新定义盒子模式?
- 10.10 圆角边框border-radius与盒子阴影:如何使用它实现圆等特殊形状?
- 函数内部的this指向
- 正则表达式在js中的使用