Linux权限及IO重定向笔记

权限管理:

r:

w:

x:

三类用户:

u: 属主

g: 属组

o: 其他用户

chown: 改变文件属主(只有管理员可以使用此命令)

# chown USERNAME file,... 把file的属主改成这个用户

-R 修改目录及其内部文件或子目录的属主

--reference=/path/to/somefile file,... 将file的属主&属组一同设定成与path的属主&属组一致

chown USERNAME:GRPNAME file,... 同时改变owner, group

eg: chown root:root /tmp/abc

chown :GRPNAME file,... 只改变group

eg: chown :mygroup /tmp/abc

# chgrp: 改变文件属组(只有管理员可以使用此命令)

-R

--reference=/path/to/somefile file,...

#chmod: 修改文件的权限

修改三类用户的权限:

chmod MODE file, ...

-R

--reference=/path/somefile file,...

修改某类用户或某些类用户权限:

u,g,o,a

chmod 用户类别=MODE file,...

eg: chmod u=rwx /tmp/abc

eg: chmod go=r /tmp/abc

eg: chmod g=rx,o= /tmp/abc 不给权限,就是没有权限 o权限为---

修改某类用户的某位或某些位权限:

u,g,o,a

chmod 用户类别+|-MODE file,...

chmod u+x,g-x /tmp/abc 赋予owner的x权限,拿掉属组的x权限

chmod a+x /temp/abc 同时赋予三类用户的x权限

练习:

1. 新建一个没有家目录的用户openstack

useradd -M openvpn

2. 复制/etc/skel为/home/openstack

cp -r /etc/skel /home/openstack

3. 改变/home/openstack及其内部文件得属主属组君威openstack

chown -R openstack:openstack /home/openstack

4. /home/openstack及其内部的文件,属组合其他用户没有任何访问权限

chmod -R go= /home/openstack

手动添加用户hive,基本组为hive(5000), 附加组为mygroup

手动生成密码:

1. openssl passwd -1 -salt ‘12345678‘

umask: 遮罩码,

#umask 022

文件默认不能具有执行权限,如果算得的结果中有执行权限,则将将其权限加1

用户创建文件

文件:666-umask

目录:777-umask

站在用户逇较多来说,SHELL的类型

登陆式shell:

正常通过某终端登陆

su - USERNAME

su -l USERNAME

非登录式shell:

su USERNAME

图形终端下打开的命令窗口

自动执行的shell脚本

bash的配置文件:

全局配置

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

个人配置

~/.bash_profile

~/.bashrc

profile类的文件:

1. 设定环境变量

2. 运行命令或脚本

bashrc类的文件:

1. 设定本地变量

2. 定义命令别名

登陆式shell如何读取配置文件?

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登陆式shell如何读取配置文件?

~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

bash: 脚本解释器

程序: 指令和数据

控制器: 指令

运算器:

存储器:

地址总线: 内存寻址

数据总线: 传输数据

控制总线: 控制指令

寄存器: cpu暂时存储器

I/O: 硬盘

程序:

INPUT设备:

OUTPUT设备

系统设定

默认输入设备: 标准输出: STDOUT, 1

默认输出设备: 标准输入:  STDIN, 0

标准错误输出: STDERR, 2

eg: passwd --stdin

标准输入: 键盘

标准输出和错误输出: 显示器

I/O 重定向:

Linux:

> 覆盖输出

>> 追加输出

set -C 禁止对已经存在文件使用覆盖重定向

强制覆盖输出,则使用 >|

set +C 关闭上述功能

2>:  重定向错误输出

2>>: 追加方式重定向错误输出

&>: 重定向标准输出或错误输出至同一个文件

< 输入重定向

<<: Here Document 此处生成文档

eg:

cat << END

....

....

....

END

cat >> /tmp/myfile.txt<<EOF   追加文件到myfile.txt,遇到EOF停止

管道: 前一个命令的输出,做为后一个命令的输入

命令1 | 命令2 | 命令3

eg:

echo "hello,world" .| tr ‘a-z‘ ‘A-Z‘

echo "redhat" | passwd --stdin hive

练习:

1. 统计/usr/bin 目录下的文件个数:

ls /usr/bin  | wc -l

2. 取出当前系统上所有用户的shell, 要求, 每种shell只显示一次, 并且按顺序进行显示

cat /etc/passwd | cut -d ":" -f7 | sort -u

cut -d " " -f7 /etc/passwd | sort -u

3. 思考: 如何显示/var/log 目录下每个文件的内容类型?

file /var/log/*

or

cd /var/log

file /var/log/`ls /var/log`

4. 取出/etc/inittab文件得第6行

cat /etc/inittab | head -6 | tail -1

5. 取出/etc/passwd 文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中

cat /etc/passwd|head -9| tail -1 | cut -d ":" -f1,7 >> /tmp/users

6. 显示/etc/目录下所有以pa开头的文件, 并统计其个数

ls -d /etc/pa* | wc -l

7. 不使用文本编辑器,将alias cls=clear 一行内容添加至当前用户的.bashrc文件中

[[email protected] ~]$ cat >>~/.bashrc<<EOF

> alias cls=‘clear‘

> EOF

or

echo "alias cls=clear" >> ~/.bashrc

时间: 2024-12-19 20:54:28

Linux权限及IO重定向笔记的相关文章

Linux管道及IO重定向小练习

1.统计/usr/bin目录下的文件个数 [[email protected] ~]# ls /usr/bin | wc -l 1306 [[email protected] ~]# 2.取出当前系统上所有用户的SHELL,要求,每种SHELL只显示一次,并且按顺序进行显示 [[email protected] ~]# cut -d: -f7 /etc/passwd | sort -u /bin/bash /bin/nologin /bin/sync /bin/tcsh /sbin/halt /

Linux上的IO重定向及管道-&&gt; &&gt;&gt; 2&gt; 2&gt;&gt; 2&gt;&1 2&gt;&gt;&1 | tee tr

IO重定向: 输出重定向:> 特性:覆盖输出 输出重定向:>> 特性:追加输出 # set -C 禁止覆盖输出重定向至已存在的文件: 此时可使用强制覆盖输出:>| # set +C 关闭上述特性 错误输出流重定向:2>, 2>>  只会将错误的信息输出到指定的地方 合并正常输出流和错误输出流: (1) &>, &>> (2) COMMAND > /path/to/somefile 2>&1 COMMAND &g

Linux基础入门--IO重定向及管道

IO重定向及管道 一直都提到,程序:指令+数据 其实程序也有IO,数据的来源有多个地方:文件.外部 可用于输入的设备:文件(linux一切皆文件) 键盘设备.文件系统上的常规文件加载内容.网卡等: 可用于输出的设备:文件(linux一切皆文件) 显示器.文件系统上的常规文件输出保存.网卡等: 程序的数据流有三种: 输入的数据流:<-- 标准输入(stdin),是键盘: 输出的数据流:--> 标准输出(stdout),显示器: 错误输出流:  --> 错误输出(stderr),显示器: f

Linux基础之IO重定向及管道详解(涉及tr、tee命令)

我在刚开始接触IO重定向时,经历了由懂到不懂然后了然的过程,当然现在的我也不可能说对于IO重定向就彻底懂了,只是在解决一些问题或实现某些结果时不会因为IO重定向的问题而迷惑了.     什么叫IO重定向? 为了解释这个问题,我们要先明白什么叫IO,什么叫做程序的数据流. 什么叫IO? 在Linux或计算机领域IO指的是信息的输入和输出. 在Linux中可用于输入的设备:文件(Linux中一切皆文件) 具体包括:键盘设备.文件系统上的常规文件.网卡等. 在Linux中用于输出的设备:文件 具体包括

linux下的IO重定向与管道相关的知识简析

一.bash重定向部分简单翻译 1.1.bash手册关于重定向短短的注解(因为过于经典,所以摘录出来) 我的翻译要开始毁经典啦... 参考:https://blog.csdn.net/spch2008/article/details/51433353/ https://www.cnblogs.com/lqminn/archive/2013/05/30/3108283.htmlhttps://bash.cyberciti.biz/guide/Here_stringshttps://bbs.csdn

用户命令、权限、IO重定向、grep

/etc/passwd:用户名:密码:UID:GID:注释:家目录:默认SHELL/etc/group:组名:密码:GID:以此组为其附加组的用户列表/etc/shadow:用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间:用户管理:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage创建用户:useradd [options] USERNAME-u UID:手动给用户指定

linux管理及IO重定向

Linux学习笔记——管道及IO重定向

管道及IO重定向 运算器.控制器:CPU 存储器:RAM 输入/输出设备   I/O 程序:指令和数据 控制器:指令 运算器: 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 I/O: 程序:指令和数据 INPUT设备: OUTPUT设备: 系统设定:  默认输出设备:标准输出,STDOUT,1   默认输入设备:标准输入,STDIN,0 标准错误输出:STDERR,2 标准输入:键盘 标准错误输出:显示器 I/O重定向: linux:  >:覆盖输出 >>:追加输

[Linux 005]——IO重定向

通常在 Shell 中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上.当然,我们也可以手动的指定输出路径,或者输入路径,这就是 I/O 重定向. 1.标准输出重定向 使用 cat 命令,命令的执行结果将会打印在屏幕中. 我们使用 > 来进行输出重定向,此时屏幕上不再打印命令执行结果了,而是将执行结果保存到了 ./target.xxx 文件中. 来看一下 ./target.xxx 文件中的内容: 2.标准输入重定向 tr 命令可以从键盘上读取标准输入