用户与权限

一、 输入输出的重定向
输入重定向把文件导入命令中
输出重定向原本输出到屏幕的数据写入到文本中
标准输入重定向 STDIN 文件描述符0 默认从键盘输入
标准输出重定向 STDOUT 描述符1 默认输出到屏幕
错误输出重定向 STDERR 描述符2 默认输出到屏幕
[root@thinkmo ~]# ll test.sh
-rw-r--r--. 1 root root 85 May 9 04:52 test.sh
[root@thinkmo ~]# ll xxxxxxx
ls: cannot access xxxxxxx: No such file or directory

输入重定向 <
符号 作用
命令<文件 将文件作为命令的标准输入
命令<<分界符 从标准输入中读入,直到遇见分界符才停止
命令<文件1>文件2 将文件1作为命令的标准输入并将标准输出到文件2

输出重定向 >
用户与权限

二、 环境变量
用户与权限

[root@thinkmo ~]# echo $HOME
/root
[root@thinkmo ~]# echo $SHELL
/bin/bash
[root@thinkmo ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@thinkmo ~]#

1.输入变量---->系统判断用户输入是以绝对路径还是相对路径方式输入?
2.检测命令是否为别名命令 使用alias命令对命令重名了
alias 别名=命名 取消明明unalias
[root@thinkmo ~]# rm readme.txt
rm: remove regular empty file `readme.txt'? y

[root@thinkmo ~]# alias rm
alias rm='rm -i'
[root@thinkmo ~]# unalias rm
[root@thinkmo ~]# alias rm
-bash: alias: rm: not found
[root@thinkmo ~]# rm readme.txt
[root@thinkmo ~]# ll
total 112
-rw-------. 1 root root 1174 Apr 2 18:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 118 May 9 06:40 chkhost.sh
-rw-r--r--. 1 root root 155 May 9 07:31 chkkeys.sh
-rw-r--r--. 1 root root 233 May 9 07:03 chkscore.sh
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Desktop
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Documents
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Downloads
-rw-r--r--. 1 root root 329 May 9 08:14 guess.sh
-rw-r--r--. 1 root root 27794 Apr 2 18:59 install.log
-rw-r--r--. 1 root root 7572 Apr 2 18:57 install.log.syslog
-rw-r--r--. 1 root root 69 May 9 07:11 mkcdrom.sh
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Music
-rw-r--r--. 1 root root 310 May 9 07:49 passwd.sh
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Pictures
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Public
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Templates
-rw-r--r--. 1 root root 85 May 9 04:52 test.sh
-rw-r--r--. 1 root root 141 May 9 07:59 user.sh
-rw-r--r--. 1 root root 23 May 9 07:36 users.txt
drwxr-xr-x. 2 root root 4096 Apr 14 07:19 Videos
[root@thinkmo ~]#

3.bash解释器 判断命令是内部--直接执行还是外部(需要处理)
通过type命令查看
[root@thinkmo ~]# type cat
cat is hashed (/bin/cat)
[root@thinkmo ~]# type his
-bash: type: his: not found
[root@thinkmo ~]# type history
history is a shell builtin
[root@thinkmo ~]#

4.系统在多个路径中查找用户输入的命令文件 定于路径的变量就是PATH
可以用. 写入PATH吗?
.当前目录!!!
但是不那么做!!
/tmp目录 公共目录---->命令叫ls 黑客-木马病毒文件ls
进入/tmp 执行 .ls
[root@thinkmo ~]# echo $HOME
/root
[root@thinkmo ~]# su - abby
[abby@thinkmo ~]$ echo $HOME
/home/abby
[abby@thinkmo ~]$


三、 用户与用户组
多用户多任务操作系统
文件的所有者(属主)、所属组(数组)和其他人对文件进行的读(r)写(w)执行(x)操作
添加、删除、修改用户信息
使用特殊权限SUID SGID SBIT更加灵活控制权限

3.1用户身份和能力
安装系统时 设置root密码
默认root超级用户(Linux Unix系统都是超级用户)
root不一定是超级用户
UID GID
UID --用户ID 唯一的
GID --组ID 惟一的
一个用户 具备一个UID 同时会有一个同名组GID

Linux中有三类用户--->/etc/passwd文件保存账户信息
1.超级用户root 默认 真实的具备UID=GID=0的用户
2.系统用户UID范围1-499 ,使某些服务具备特殊的用户单独负责
apache用户(web服务)
3.普通用户通过root用户创建的 默认从500开始
用户和组的关系---->
一对一 一对多 多对一 多对多
对于用户和用户组的增删改查
增加:useradd 和groupadd
用户与权限
修改:usermod 和groupmod
用于修改用户属性
用户与权限
passwd命令
用于修改用户密码
用户与权限
普通用户只能使用passwd修改自己的密码
root用户可以修改所有人密码
[root@thinkmo ~]# passwd
Changing password for user root.
New password:
[root@thinkmo ~]# passwd abby
Changing password for user abby.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@thinkmo ~]#

删除:userdel 和groupdel
用户与权限

四、 文件权限和归属
Linux下都是文件
4.1文件类型:f /- 普通文件
d 目录
l 链接----软链--相当于快捷方式、硬链---完整复制
b 块文件---设备--硬盘光盘 U盘
c 字符文件----虚拟终端
s 数据库文件

4.2文件普通权限:一共九位
前三位:rwx 满位 ---空位 ---->属主(文件所有者)
中三位:rwx 满位 ---空位 ---->属组(文件所有组)
后三位:rwx 满位 ---空位 ---->其他人
用户与权限
用户与权限

a b c 三个人 --->文件属于a属主 属于ab组(组内成员ab 属组) 其他人c
用户与权限

4.3文件特殊权限
4.3.1 SUID--->setUID
针对二进制程序设置的 让二进制程序执行者临时拥有属主权限
例如:所有用户都可以执行passwd 修改密码
用户名和密码保存在/etc/passwd文件下
[root@thinkmo ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1800 May 9 07:51 /etc/passwd
权限只能支持root修改---->意味着普通用户改不了密码
[root@thinkmo ~]# which passwd
/usr/bin/passwd
[root@thinkmo ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 17 2012 /usr/bin/passwd
[root@thinkmo ~]#
作用就是让普通用户临时获得属主权限
值4000
如果文件本身具备x权限 那么就是s 如果没有x 就是S
[root@thinkmo ~]# stat /usr/bin/passwd
File: `/usr/bin/passwd'
Size: 30768 Blocks: 64 IO Block: 4096 regular file
Device: 802h/2050d Inode: 531843 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-05-08 21:27:05.407083241 +0800
Modify: 2012-02-17 16:23:29.000000000 +0800
Change: 2018-04-02 18:53:13.544999578 +0800
[root@thinkmo ~]# chmod 4655 /usr/bin/passwd
[root@thinkmo ~]# ll /usr/bin/passwd
-rwSr-xr-x. 1 root root 30768 Feb 17 2012 /usr/bin/passwd
[root@thinkmo ~]#

4.3.2SGID=setGID
仿照SUID,设置的属组的特殊权限
如果文件本身具备x权限 那么就是s 如果没有x 就是S
值2000
[root@thinkmo ~]# chmod 2655 /usr/bin/passwd
[root@thinkmo ~]# ll /usr/bin/passwd
-rw-r-sr-x. 1 root root 30768 Feb 17 2012 /usr/bin/passwd

4.3.3SBIT 粘滞位
作用确保用户只能删除自己的文件 对别人不能删除
drwxrwxrwt. 5 root root 4096 May 9 03:24 tmp
如果文件本身具备x权限 那么就是t 如果没有x 就是T
值1000
创建目录和文件
默认权限是多少:
命令:755
文件:644
为什么????
默认情况目录权限满位777
文件权限满位666
文件666 每个位上缺少x --->可执行 是所有文件脚本?
都缺少022权限---网络掩码---反掩码
umask 默认022
文件的权限修改有两个命令
chmod 对权限修改(rwx suid sgid sbit)
两种授权形式:
1.数字授权; chmod 777(rwxrwxrwx) 文件名
chmod 777 -R 目录名---->-R参数用于权限递归

2.表达式授权:a所有 u用户 g用户组 o其他人
+赋予权限 -撤销权限 =覆盖权限
chown 对文件所有者/所有组修改

5.su命令和sudo命令
su用于用户切换
从root用户切换到普通用户是不需要密码的 但是从普通切换到root是需要密码的
使用- 进入到用户的家目录/home/linux
不使用 还是在root用户家目录 /root ~

如何使用sudo命令把特定的命令的执行权限赋予指定用户
保证普通用户能够完成特定的工作
避免暴露root密码
sudo命令用于给普通用户提供额外权限来完成本来由root用户才能完成的任务
用户与权限
功能:限制用户执行指定命令
记录用户执行每一条命令
配置文件/etc/sudoers 提供集中的用户管理、权限和主机参数
可以通过visudo去配置用户权限 只有root可以使用(poweroff reboot)
##Allow root to run any commands anywhere
root ALL=(ALL) ALL
谁可以用 允许使用的主机= 以谁的身份 可以执行的命令

猜你喜欢

转载自blog.51cto.com/12298496/2115519