第三篇 用户和权限
本篇内容:
1.输入输出重定向
2.用户和用户组
3.文件类型与文件权限(普通权限 用户权限 隐藏权限)
一、输入输出的重定向
输入重定向是把文本导入命令中
输出重定向是把我们原本要出输出屏幕的数据内容写入到文本中 ----常用
标准输入重定向(STDIN) 文件描述符是0 默认从键盘输入
标准输出重定向(STDOUT)文件描述符是1 默认输出到屏幕
错误输出重定向(STDERR)文件描述符是2 默认输出到屏幕
输入重定向: <
符号 作用
命令<文件 将文件作为命令的标准输入 ---相当于 文件 | 命令
命令<<分界符 从标准输入中读入,直到遇见分界符才停止
命令<文件1 >文件2 将文件1作为命令的标准输入并将标准输出
输出重定向:>
命令>文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令2>文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令>>文件 将标准输出重定向到一个文件中(追加到原有内容的后面)
命令2>>文件 将错误输出重定向到一个文件中(追加到原有内容的后面)
命令1&2>>文件
二、环境变量
变量 用于保留可变值的数据类型 变量名称 一般大写
HOME 用户的主目录(即家目录)
SHELL 用户在使用的
Shell 解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1Bash 解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
$作用是:获取一个变量的值
1.输入变量---->系统判断用户输入是以绝对路径还是相对路径方式输入?
2.检测命令是否为别名命令使用alias命令对命令重名了
alias别名=命名
取消别名: unalias 别名
3.bash解释器判断 命令是内部--直接执行还是外部(需要处理)
通过type命令查看
内部命令实际上是shell程序的一部分 通常在linux系统加载运行时shell就被加载并驻留在系统内存中
外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以它们包含的程序量也会
很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调进内存
4.系统在多个路径中查找用户输入的命令文件定于路径的变量就是PATH
[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 去这里检测你的命令是否存在
自己写变量:属于临时变量
如果需要长期使用该路径 需要在/etc/profile和/etc/bashrc文件对所有用户有效,~/bashrc和~/.bash_profile只对当前用户有效
[root@localhost home]# mkdir /home/ss
[root@localhost home]# SS=/home/ss
[root@localhost home]# cd /root/
[root@localhost ~]# echo $SS
/home/ss
[root@localhost ~]# cd $SS
[root@localhost ss]#
声明一个环境变量:export AA="hello world",相对普通变量而言,只需在前面加上export即可
三、用户和用户组
文件的所有者(属主)、所属组(数组)和其他人对文件进行的 读(r) 写(w) 执行(x)
添加、删除、修改用户信息
也可使用特殊权限 SUID SGID SBIT 更加灵活控制权限
3.1.用户身份和能力
默认root超级用户(Linux Unix系统都是超级用户)
root 不一定是超级用户
UID GID
UID--用户ID唯一的
GID--组ID惟一的
一个用户具备一个UID同时会有一个同名组GID
3.2.Linux中有三类用户---> /etc/passwd文件保存账户信息
1.超级用户 默认root 真实的具备 UID=GID=0 的用户
2.系统用户UID=1-499,使某些服务具备特殊的用户单独负责
3.普通用户通过 root用户创建的默认 UID>=500开始
一些程序会由独立的系统用户去执行
安装httpd服务会有一个 apache的系统用户 http是协议 httpd是 服务 需要一个服务器apache/nginx环境
用户和组的关系----> 一对一 ,一对多 ,多对一 ,多对多
3.3.用户的增删改查
用户查看:/etc/passwd
组查看:/etc/group
1.用户与组的增加 useradd 和 groupadd
参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认
[root@localhost ~]# id linux
uid=502(linux) gid=502(linux) groups=502(linux)
[root@localhost ~]# usermod -u 888 linux
[root@localhost ~]# id linux
uid=888(linux) gid=0(root) groups=0(root)
2.修改用户的属性:usermod和groupmod
参数 作用
-c 填写用户账户的备注信息
-d-m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
3.修改用户密码:passwd
参数 作用
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd--stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
普通用户只能使用passwd修改自己的密码
[root@localhost ~]# passwd linux
4.删除:userdel和groupdel
参数 作用
-f 强制删除用户
-r 同时删除用户及用户家目录---尽量不用,用于恢复用户
四.文件权限和归属
Linux下都是文件
4.1文件类型:
f /- 普通文件
d 目录
l 链接----软链--相当于快捷方式、硬链---完整复制
b 块文件---设备--硬盘光盘U盘
c 字符文件----虚拟终端
s 数据库文件
4.2 文件普通权限:一共九位
前三位:rwx满位---空位---->属主(文件所有者)
中三位:rwx满位---空位---->属组(文件所有组)
后三位:rwx满位---空位---->其他用户
文件 目录
r 浏览文件内容 浏览目录内的内容(有什么文件但是不一定能看内容)
w 修改文件内容 删除 移动 复制文件
x 执行脚本 文件进入目录内
文件有W权限但目录没有W权限是不是删除的
a b c 三个人--->文件属于a属主 属于ab组(组内成员ab属组) 其他人c
4.3文件的特殊权限
1.SUID=setUID
针对二进制程序设置的 让二进制程序执行者临时拥有属主权限
bin里面的命令都是二进制的
[root@localhost ~]# which cat 使用which搜索我的命令在哪
/bin/cat
[linux@localhost ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 17 2012 /usr/bin/passwd
只能root用户使用
s的作用让普通用户临时获得root权限属主权限
值:4000
如果文件本身具备x权限 那么就是s 如果没有x就是S
2.SGID=setUID
仿照SUID,设置的属组的特殊权限
如果文件本身具备x权限那么就是s如果没有x就是S
值:2000
3. SBIT粘滞位作用
确保用户只能删,除自己的文件对别人不能删除
如果文件本身具备x权限 那么就是t 如果没有x就是T
值1000
drwxrwxrwt. 11 root root 4096 May 16 08:00 tmp
目录和文件默认权限是多少:
目录:755
文件:644
默认情况 目录权限满位777
文件权限满位666
文件666每个位上缺少x--->可执行 不是所有文件脚本?
都缺少022权限---网络掩码---反掩码
umask默认022
文件权限修改俩种命令:
chmod 777(rwxrwxrwx)文件名
两种授权形式:
1.数字授权:
chmod对权限修改(rwx suid sgid sbit)
chmod 777-R目录名---->-R参数用于权限递归 只对目录下现有的有效
+赋予权限 -撤销权限 =覆盖权限
2.表达式授权:
a所有 u用户 g用户组 o其他人
[root@localhost wdw]# chmod u+x,g+w,o+r linux
chown对文件所有者/所有组修改
[root@localhost /]# chown root:wdw linux/
4.su 和 sudo 命令
su 用于用户切换 su - 完全切换
sudo:
使用sudo命令把特定的命令的执行权限赋予指定用户
保证普通用户能够完成特定的工作, 避免暴露root密码
udo命令用于给普通用户提供额外权限来完成本来由root用户才能完成的任务
参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
功能:限制用户执行指定命令
记录用户执行每一条命令
比如:poweroff, reboot
配置文件/etc/sudoers提供集中的用户管理、权限和主机参数
可以通过visudo去配置用户权限 只有root可以使用
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
谁可以用 允许使用的主机=以谁的身份 可以执行的命令
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
linux ALL=(root) /sbin/ reboot
这需要每次输密码可以写成 linux ALL=(root)NOPASSWD: /sbin/reboot
[root@localhost ~]# su - linux
[linux@localhost ~]$ sudo reboot
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for linux:
5. 隐藏权限:chattr 和 lsattr
chattr命令锁定该文件
lsattr命令是显示chattr命令设置的文件属性。
与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的
有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。
chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的。通过chattr命令修改属性能够提高系统
的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。
chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先
被记录 (在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有
superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
应用举例:
1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf
然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf
# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf
2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages
转载于:https://blog.51cto.com/13709718/2117730
第三篇 用户和权限相关推荐
- linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础
用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...
- Jenkins拾遗--第三篇(用户权限管理)
采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...
- linux 用户文件字段解释,0220自学Linux_逻辑理解用户进程权限相关+理解文件内各字段(passwd,shadow,group)(示例代码)...
11 内核是真正意义上的操作系统 库有动态库也有静态库,Linux的动态库是.so后缀的,也称为共享库 库是不能够独立运行的,只能被调用 Window的动态库是.dll后缀的 我们平时所谓的安装操作系 ...
- Linux中的python、mysql安装以及用户与权限
一.软连接和硬链接 命令: ln -s 被连接的文件源 连接文件(快捷方式名称) 注意: 1.没有 -s 选项建立的是一个硬连接文件,两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接. ...
- MySQL基础篇(07):用户和权限管理,日志体系简介
本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...
- 创建用户赋权限_JMeter接口测试实战之「创建用户」篇
JMeter接口测试实战 场景分析: 在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 阿一是管理员权限, 阿二是部门经理权限, 阿 ...
- (三)Linux 用户和权限
一.认知 root 用户 1. root 用户(超级管理员) 无论是 Windows.MacOS.Linux 均采用多用户的管理模式进行权限管理 (1)在 Linux 系统中,拥有最大权限的账户名为: ...
- 《Linux基础三》用户和文件权限管理
用户和文件权限管理 1,用户 管理员用户: Root用户,也称根用户.超级用户.超级管理员 可对根目录执行读写和执行操作 具有系统中的最高.所有权限 普通用户: 权限有限的用户 Root用户拥有系统的 ...
- 第三篇:mig IP用户读写时序
FPGA开源工作室将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3. 本实验和工程基于Digilent的Arty Artix- ...
最新文章
- ASP.NET 防盗链源码
- java 三级考试_java web 学习 --第三天(Java三级考试)
- arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1
- 织梦的网站地图怎么做html,如何优化织梦dedecms默认网站地图sitemap.html??
- 抽象数据类型,让Oracle数据库数据管理更加容易
- 现代经济中的货币创造
- ora 01033 解决
- android jcenter google 镜像
- vin码识别(车架号识别)的工具
- hadoop 编程规范(hadoop专利分析)
- 富文本编辑器ueditor——找不到ueditor.all.js以及ueditor.all.min.js文件
- 一个由服务器时区引发的Bug
- 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已率先做好准备 应对 2038 年问题
- python to_excel 时间格式_分别用Excel和python进行日期格式转换成时间戳格式
- 推荐五个常用的免费图片素材下载网站
- 分分钟带你学会DNS、WEB、DHCP服务器的搭建
- php 触控精灵,背景控制,精灵图 3-12
- oracle触发器如何调试
- genus 综合流程
- JAVA 完整实现滑块拼图验证码
热门文章
- Nginx ssl、rewrite配置
- 深入分析 java 8 编程语言规范:Threads and Locks
- MySQL多源复制【转】
- git本地项目代码上传至码云远程仓库总结
- DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统
- WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用
- Jmeter简单应用6
- python安装mysql库
- 伪静态技术(SEO) 摘自:http://bbs.admin5.com/thread-8522290-1-1.html
- 2009年依然兑现不了的10大IT安全预期