第三章 红帽企业linux 获取帮助 (略)

man 、pinfo、

第四章 编辑文件

1.输出重定向到文件和程序

>file    定向文件(覆盖)

>>file   定向文件(附加)

2>file   定向错误文件

2>/dev/null  定向错误信息丢弃

&>file   合并文件

练习命令

date > 1             日期放到1

ls -a > 2            文件信息放到2

cat 1 2 > 3          2个文件合并到3

echo "test" >> 3     将输出附加到3

diff 2 3 >> 4        对比2和3区别附加到4

find /etc -name passwd 2> /tmp/errors                仅将错误信息保留到文件

find /etc -name passwd > /tmp/output 2> /tmp/errors  将显示信息和报错分开保存

find /etc -name passwd > /tmp/output 2> /dev/null    丢弃错误信息

find /etc -name passwd &> /tmp/save-both             输出和错误同时保存

find /etc -name passwd >> /tmp/save-both8 2>&1       输入和错误附加到现有文件

注:关于 2>&1 (参考:http://os.chinaunix.net/a2009/0903/996/000000996941.shtml)

2.建立管道

ls -l /usr/bin | less   分页显示

ls | wc -l              显示行数

ls -t | head -10        显示最新的前10个

ls -l | tee /tmp/123    显示并保存到文件 (ls -l > /tmp/123 不显示只保存)

tyy                     显示当前窗口

注:tee命令 (参看http://codingstandards.iteye.com/blog/833695)

3.使用vim 编辑文件

i 插入  Esc 返回命令模式  u撤销  yy 复制  p粘贴

v 选在起点   ctrl+v 选择列

第五章 linux用户和组

1. id      显示当前登陆用户信息

ls -l   第三列魏用户名

ps au   显示进程及相关联用户

查看 /etc/passwd

①用户名 ②密码③UID④GID⑤GECOS⑥用户数据位置⑦用户命令行提示符程序   (UID是用户ID,GID组,GTCOS任意字段)

root      :x    :0   :0   :root :/root         :/bin/bash

查看 /etc/group

每个用户有且只有一个主要组,用户可以使0个或多个补充组成员。

2.超级用户访问权限

su -

sudo   执行root权限,在 /etc/sudoers 中设置授权。sudo日志会记录在 /var/log/secure 中。

(linux 7中 wheel 组的所有成员都可使用sudo 。linux6 不行)

3.管理本地用户

useradd   passwd

新用户默认值在 /etc/login.defs 读取,如有效UID默认密码过期规则等,仅在创建新用户使用,更改对现有用户无影响。

usermod  -c   向GECOS字段添加值

-g   为用户指定主要组

-G   为用户指定补充组

-a  与 -G 一起使用,添加到补充组而不删除原组

-d  指定新主目录

-m  迁移主目录到新位置,必须与 -d一起使用

-s  为用户指定新的登陆shell

-L  -U   锁定 / 解锁

userdel   删除用户

123    从/etc/passwd 中删除,/home/123 还在

-r 123  同时删除主目录

fine / -nouser -o -nogroup 2> /dev/null  删除无人文件,确保安全

id       显示用户信息

UID     范围 0:超级用户               1-200:系统用户,静态分配给系统进程

201-999:动态分配给软件   1000+:非配给普通用户

tail -n XXX.log  n 显示行数, 动态显示最后5行

4.管理本地组

groupadd -g 5000 ateam   : -g 指定GID

groupadd -r   ateam      : -r 使用 /etc/login.defs 中的GID编号

groupmod -n              : 更改组名

groupmod -g              :指向新的GID

groupdel                 :删除组

例1: $ chmod 644 mm.txt

  $ ls –l

  即设定文件mm.txt的属性为:

  -rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt

  文件属主(u)inin 拥有读、写权限

  与文件属主同组人用户(g) 拥有读权限

  其他人(o) 拥有读权限

  例2: $ chmod 750 wch.txt

  $ ls –l

  -rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt

  即设定wchtxt这个文件的属性为:

  文件主本人(u)inin 可读/可写/可执行权

  与文件主同组人(g) 可读/可执行权

  其他人(o) 没有任何权限

STICKY:
t 位:sticky粘滞位。对于一个大家都可以写的公共场所,每一个用户都可以写,删除权限的前提下,我们限定,大家只能删除自己的。这样的功能,就是t位 。/tmp就是有特殊属性 t 的目录。
t位是放在 o 上的, 其他人上的。

chmod o+t /project/

-----------------------------------------------------
SUID , SGID , STICKY
他们也用3位2进制来表示
  4 2   1

5.管理密码

linux7 支持的新算法 sha-256 和 sha-512(默认)

密码哈希存储在 /etc/shadow (9个:分割)

①用户名②密码③最后改密日期④改密最少天数⑤改密最多天数⑥到期警告⑦密码过期后活动天数⑧到期日期⑨blank预留

jjp:$6$f...6sf4xXN0:16476:0:99999:7:::

注:密码以“!”开头表示已锁定,天数都是以距1970年1月1日起算天数。

密码过期

chage -l username      显示用户当前密码配置

chage -d 0 username    强制用户第一次或下次登录更改密码

chage -E YYYY-MM-DD    指定账户到期

限制访问

usermod -L username                 锁定账户

usermod -U username                 解锁

usermod -M 90  username             每90天改变密码

usermod -s /sbin/noiogin  username  停用用户shell,用户可验证,通过非交互方式访问。

练习:

确定未来90天日期         #date -d "+90 days"

将用户设为该日期到期     #chage -E 2015-12-12 username

检测一下是否已经修改了   #chage -l username

RHCE学习笔记 管理1 (第三~五章)的更多相关文章

  1. RHCE学习笔记 管理1 (第六章 第七章)

    第六章 利用linux 文件系统权限文件访问 1.linux文件系统权限 文件的权限分为:  rwx  读/写/执行 ls -l  /home   查看/home下文件 ls -ld /home   ...

  2. RHCE学习笔记 管理1 (第一、二章)

    第一章 命令行访问 1.Ctrl+alt+F2~F6 切到虚拟控制台,ctrl+alt+F1 回到图形界面 2.格式 : 命令 选项 参数 [] 为可选项目            ...表示该项目任意 ...

  3. The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问

    以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器. from ...

  4. Java虚拟机内存溢出异常--《深入理解Java虚拟机》学习笔记及个人理解(三)

    Java虚拟机内存溢出异常--<深入理解Java虚拟机>学习笔记及个人理解(三) 书上P39 1. 堆内存溢出 不断地创建对象, 而且保证创建的这些对象不会被回收即可(让GC Root可达 ...

  5. 《python基础教程(第二版)》学习笔记 列表/元组(第2章)

    <python基础教程(第二版)>学习笔记 列表/元组(第2章)序列中的下标从0开始x='ABC' ==> x[0]='A', x[1]='B', x[2]='C'负数索引从右边开始 ...

  6. 《python基础教程(第二版)》学习笔记 基础部分(第1章)

    <python基础教程(第二版)>学习笔记 基础部分(第1章)python常用的IDE:Windows: IDLE(gui), Eclipse+PyDev; Python(command ...

  7. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Verilog学习笔记简单功能实现(五)...............序列检测设计

    这里采用夏宇闻教授第十五章的序列检测为例来学习; 从以上的状态转换图可以写出状态机的程序: module seqdet(x,out,clk,rst); input x,clk,rst; output ...

  9. JavaScript高级程序设计(第三版)学习笔记20、21、23章

    第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...

随机推荐

  1. hdu 2460(tarjan求边双连通分量+LCA)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2460 思路:题目的意思是要求在原图中加边后桥的数量,首先我们可以通过Tarjan求边双连通分量,对于边 ...

  2. python3----splitlines

    Python中的splitlines用来分割行.当传入的参数为True时,表示保留换行符 \n.通过下面的例子就很明白了: mulLine = """Hello!!! W ...

  3. HashMap的clear()方法和new HashMap的效率问题

    最近研究Lucene的时候,遇到的用到大量Map的问题,心生好奇,想看一下在1W,10W,100W三种数据量下,new HashMap ,与 HashMap.clear()方法的效率问题. 提前说明: ...

  4. mvc ajax给control传值问题

    jquery中的ajax操作给后台传值 $.ajax({ type: 'POST',   url: '<%=Url.Action("test","testIndex ...

  5. 简单的c语言小程序 回光返照

    主函数 int main(int argc,char * argv[]) -- arg代表英文的参数缩写 c代表count计数 argc { return 0;  -- 0返还给系统,代表程序正确运行 ...

  6. Android无线测试之—UiAutomator UiSelector API介绍之七

    对象搜索—索引与实例 一.索引与实例说明: 1)index:在同一级中的编号,在兄弟类中组件的编号,index从0开始 2)instance:同一个布局中同一类组件的编号,instance从0开始 二 ...

  7. 使用jenkins进行Android的持续集成

    关于持续集成的定义和意义可以参考它的 百度百科 主要意义有以下几点: 减少风险 减少重复过程 任何时间.任何地点生成可部署的软件 增强项目的可见性 建立团队对开发产品的信心 持续集成的实施 持续集成的 ...

  8. Linux 常用命令缩写及对应的

    0.项目名: Linux -- LINUs' uniX (开个玩笑不是这样的,别当真) GNU -- Gnu is Not Unix1.目录名: /boot:顾名思义 /root :同上 /run:同 ...

  9. JavaScript Array 对象(length)方法 (contact、push,pop,join,map、reverse、slice、sort)

    一.Array对象属性 1.length 设置或返回数组中元素的数目. 数组的 length 属性总是比数组中定义的最后一个元素的下标大 1.对于那些具有连续元素,而且以元素 0 开始的常规数组而言, ...

  10. django实现密码加密的注册(数据对象插入)-结合forms表单实现表单验证

    forms表单 #_*_coding:utf-8_*_ from django import forms class regis(forms.Form): username = forms.CharF ...