默认教学计划
931人加入学习
(20人评价)
Linux运维基础
价格 ¥ 599.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

Linux权限管理

权限:是用户对于系统资源及数据等操作的能力 

三类用户权限:

属主 owner

属组 group

其他 other

 

文件:

r 读权限,可以查看文件的内容,使用cat more等命令

w 写权限,可以修改文件的内容及删除文件

x 执行权限,可执行文件或脚本

目录

r 读权限,可以查看目录中的列表,执行ls命令

w 写权限,可以向目录中新建文件或目录

x 执行权限,执行cd命令
 

权限用数字表示:

r 4  w 2  x 1

 

chown 改变文件属主和属组(修改文件属组时,在组名前添加 . 符号 或 :冒号 )

-R 递归更改目录的属主或属主

--reference 复制一个目录的权限属性到目标文件

同时修改属组和属主——

chown username.groupname filename

 

chgrp 修改文件属组

chmod 修改文件或目录权限

 chmod 【augo】【+-=】【rwx】filename

-R 递归更改文件或目录权限

a  所有用户

u  文件属主

g  文件属组

o  其他用户

+  为用户添加权限

-   为用户减少权限

=  为用户赋予权限

 

 

[展开全文]

用户组管理

/etc/group

第一列:组的名字

第二列:组的密码区域

第三列;组的ID号

第四列:组中成员

 

/etc/gshadow

第一列:组的名字

第二列:组的密码

第三列;组管理员

第四列:组成员列表

 

groupadd:

-d 创建组的时候,指定组的ID

-r 添加一个系统组

 

groupdel 删除组

默认情况下,不能删除一个用户的基本组,可以通过修改用户的基本组后删除该组。删除用户的同时,系统会删除同名基本组(该组是一个用户的基本组)

 

groupmod 修改组的属性

-g 修改组的GID号

-n 为组重命名

 

gpsswd 为设置密码,设置组的管理员,添加组成员

-A 为组设置管理员

-M 批量添加用户,中间用逗号隔开

-r 移除组密码

-R 让组密码失效

-a 为组添加成员(组管理员操作命令)

-d 删除组成员

 

newgrp 为用户修改有效组(只在当前shell生效)exit 退出newgrp

 

groupmens 为组添加成员显示组成员列表

[展开全文]

linux根文件系统。

根目录下 目录及子目录的作用:

 

linux文件类型:

-  :普通文件。

        纯文本文件(ascll):配置文件

        二进制文件(binary file):命令

        数据文件(data):/var/log/wtmp  

d      :目录文件:

l       : 链接文件:软链接文件。类似于windows快捷方式。

 

设备文件:(/dev)

b      : block块设备。就像windows的各个盘。

c       :字符集设备。:按顺序读取。一次性读取

s        :套接字文件。:用在网络上的数据连接。

            IP:端口

p:管道文件:特殊的文件类型,解决多个程序  同时访问  一个文件   所造成的错误问题。 

file:查看linux中文件类型:

语法:file 【options】 file name  直接加文件名可以看文件类型。

linux文件名限制:

1.单个文件或目录的名称不能超过255字符

2.文件名中不能包括特殊字符(/ 。 - +等)。

3.

 

 

FHS标准:希望用户可以了解已经安装的程序在那个目录下。

根文件系统(/) 

/bin:binary:二进制,存放了一些命令。外部命令。

/boot:存放启动和内核相关的文件。

/dev:存放设备文件, 

/etc:存放应用程序的配置文件。

/home:普通用户的宿主目录 新建一个用户默认为/home/username

/lib和/lib64:放置存放系统开机时需要用到的函数库以及/bin和/sbin命令调用的函数库。32位和64位。

/lib/modules:存放内核相关的一些模块(驱动程序等等)

/media:和/mnt:挂载点  

/media挂在移动设备 eg:usb    /mnt  挂载临时设备。

如访问光驱,光驱在linux下就是一个文件,是在/dev下的一个文件,如/dev/dvd  /dev/cdrom,cd无法进入/dev/dvd,它不是目录,是一个文件。需要一个入口, 需要把这个光驱文件映射到一个文件中,打开映射到的这个文件。这个文件就在/media里。

/opt :option  :第三方软件存放目录(用户自行安装的软件存放处),现在一般安装到/usr/local中。。了解一下就可以。

/proc:伪文件系统,数据存放在内存当中,存放关于进程的 相关信息。等。cpu 等。

/root:管理 员的家目录。

 

/sbin:存放管理员使用的命令。可以给普通用户授权使用

/srv:servevice缩写,存放服务数据的目录,如可以把www服务的网页存到该目录

/tmp:存放临时文件文件,所有用户都可以访问创建文件,但是每个用户只能删除自己创建的文件。(操作系统会定时清除)

/sys:伪文件系统,存放在内存当中,记录内核相关信息,包括目前加载的内核模块和内核检测到的硬件设备等。

/usr:unix software resource :存放安装的应用程序。

usr/bin :普通用户使用的目录。

/var:vary:存放经常变动的文件,如日志 mail等

FHS规定:/etc  /bin  /dev  /lib  /sbin  五个目录必须和根在一起,位于同一文件系统。

 

usr下的bin sbin 和 根下的bin sbin 不同:

/bin:和开机时候相关的命令有关。

/usr/bin:(一些程序的命令,区别:是否和开机有关)。

/usr/sbin:存放网络服务器命令。

/usr/lib 和/usr/lib64:应用程序的函数库,等等

/usr/share:存放共享文件的目录。(在线帮助文件,杂项,时区文件等)

/usr/include:存放一些头文件。

/usr/src:释放源代码目录。

 

/var/cache:应用程序运行时产生的缓存文件

/var/lib:程序运行的时候,需要使用的数据文件的存放目录。

/var/lock:存放一些锁文件。设备或资源一次只能被一个应用程序使用,如果多个应用程序使用会产生错误。因为腰围资源或设备上锁。

/var/log:存放系统日志。(系统,用户登陆,服务日志等)

/var/mail:存放个人的电子邮件。(系统报警产生的邮件信息。)

/var/run:存放应用程序运行时PID文件(进程号 .pid结尾)

/var/spool:存放 队列数据

 

 

 

 

 

 

[展开全文]

passwd 为用户设置密码;锁定或解锁用户;查看用户状态  passwd 【选项】username  root可以为普通用户设置密码

    -l 锁定用户,暂时无法登陆

    -u 解锁用户

    -S 查看用户状态,显示/etc/shadow文件中各个字段的内容

/etc/shadow 保存用户密码相关信息的文件

    --stdin 标准输入流,经常用在shell脚本编程中自动为用户设置密码

    -e 设置用户密码过期,用户再次登录时,需要修改密码

    -d 删除用户密码,允许普通用户以空密码登陆(不建议使用)

    -n 设置密码时设置最小使用期限修改/etc/shadow中第四列

    -x 设置密码最大使用期限,修改第五列

    -w 设置密码过期前的警告时间,修改第六列

    -i   修改过期后的宽限时间,第七列

普通用户设置密码时,需要验证当前密码,且符合密码策略;root用户设置密码时则不需要符合要求

 

userdel 删除用户(修改/etc/passwd /etc/group  /etc/shadow) userdel 【选项】username

    -r 删除用户时,同时删除宿主目录

 

usermod 修改用户属性

usermod 【选项】 username

    -c 更改用户的描述信息

    -d 更改用户的宿主目录

    -e 更改用户过期时间 YYYY-MM-DD

    -f 修改/etc/shadow第七列内容

    -g 修改用户的基本组

    -G 修改用户的附加组

    -l  修改用户的登录名

    -s 修改用户的shell

    -L 锁定用户

    -U 解锁用户

 

chsh 修改用户的shell

-s 后加shell,更改用户shell

-l 显示系统支持的shell(/etc/shells)

 

finger 查看用户的基本信息

chfn 修改用户的基本信息

id  显示用户和组的id号

    -Z 显示安全上下文(selinux)

    -g 显示有效组id

    -G 显示所有组id

    -n 不显示组号,只显示组名

    -u 显示用户id

chagel 修改用户密码的时间信息

    -l 列出用户的详细的密码参数

    -d 修改第三列内容,后面跟日期

    -E 修改第八列,后面跟日期

    -I (i 大写)第七列,跟天数

 

 

 

[展开全文]

centos7 变化:

mandb:生成whatis数据库

updatedb 生成locate数据库 

 

用户管理命令:

useradd 添加新用户

(更改 /etc/passwd   /etc/shadow  /etc/group)

    useradd 【选项】 username

-c 为用户添加描述信息

-d 指定用户的宿主目录(默认在/home)

-D 改变默认的值 /etc/default/useradd

    -g 修改组

    -b 修改宿主目录

    -f 修改过期是否停用

    -e 修改过期时间

    -s 修改默认shell

-e 新建用户时,设置用户默认的过期时间,时间格式为 YYYY-MM-DD

-g 指定用户的基本组(若没有该选项,Linux新建用户时,会新建一个同名组作为用户的基本组)

-G 新建用户时,指定用户的附加组,可以有多个,用逗号隔开

-m 创建宿主目录,和 -k 一起使用

-M 创建用户时,不为用户创建宿主目录

-p 创建用户时,设置密码

-r 创建系统目录(不创建宿主目录,UID和GID使用系统ID)

-s 指定默认shell

-u 指定用户UID

[展开全文]

linux命令帮助信息:
内部命令:help 【conmend】 help 空格 命令

外部命令:【commend】 --help 命令 空格 --help

内外都可:man:帮助。 man【commend】

操作:上下方向键翻行。

         enter:向下翻行。

         pagedown:向下翻页。

         pageup:向上。

         /word :从上往下查找关键字。

         ?word:从下往上查找关键字。

         q:退出当前帮助信息。

man使用说明:

man:分了八级目录说明。例子:ls(1).

       1      User Commands:普通用户用户命令。(/bin   /usr/bin    /usr/local/bin)有bin的都是普通用户命令,管理员也可以使用。bin:二进制。
       2      System Calls:系统调用库:内核上的API。
       3      C Library Functions:库调用。
       4      Devices and Special Files :硬件设备:(存放在/dev下边)
       5      File Formats and Conventions:查看配置文件格式:
       6      Games et. Al.:游戏
       7      Miscellanea:杂项
       8      System Administration tools and Deamons:管理命令:(/sbin usr/sbin usr/local/sbin)sbin:secret binary安全二进制。
man 使用说明:
            NAME:显示命令名称及简要的用法
            SYNOPSIS:语法格式。可能包括一些选项的使用。synopsis:纲要。
             DESCRIPTION:命令和选项的一些详细说明。description:说明;说明书。
              Exit status:退出的状态码。
              AUTHOR:author作者信息。
              REPORTING BUGS:reporting bugs:发现bug时如何反馈信息。
              COPYRIGHT:copyright:该命令的版权信息。
            SEE ALSO:另外参照的一些帮助信息。 
             OPTION:每一个选项的详细用法。
              EXAMPLE:examples:命令的使用实例。

man手册页目录(说明书目录,也就是man显示的东西从哪来。):/usr/share/doc

以后工作中主要看的是内核信息。

kernel-firmware-2.6.32  这个目录。

man :符号。

<  >    :必须使用的选项或者是参数。

【    】 :可以省略的选项或者参数。

. . .   :表示可以使用多个选项和参数。

   I    :  多选一。例如 :date [-u|--utc|--universal] :三选一,它们的作用都是一样的。

{ }     :分组。没有特殊意义。

  

man来查看内部命令时:显示的是bash帮助信息。内部一般中help。

whatis(查看命令所在的帮助信息的目录):系统打开70分钟左右会生成whatis的数据库,时间太短,该命令不会执行。

我们就  makewhatis初始化该命令。

假如说我们whatis发现这个命令不仅在(1)中存在还在如(8)中也存在。我们man的时候可以加一个数字,例如:man 1 ls

                                   man 8 ls

 

 

info:在线查看帮助。和man比较起来,注重于命令历史,版权信息等等。

 

cd:change directory 切换目录。

cd:不加选项,返回到当前用户的宿主目录。

cd: -  返回到上一次的工作路径。

cd:  ~username:~student 切换到username的宿主目录。

 

pwd:print working directory:显示当前工作的目录。

which:查看命令所在的路径。(外部命令)。

ls -i  :显示文件所在的i节点。(index node)

 

 

contents:内容。

 

 

 

 

 

 

 

 

 

 

[展开全文]

新建用户命令 useradd

/etc/default/useradd 文件解释(只对新建用户生效)

    GROUP=100 可以创建普通组

    HOME=/home 普通用户宿主目录位置(在/home下生成和用户同名的目录,作为用户的宿主目录)

    INACTIVE=-1 是否启用用户过期停止使用权,-1代表不启用

    EXPIRE= 设定过期时间,格式为20180702

    SHELL=/bin/bash 设定用户默认使用的shell

    SKEL=/etc/skel 新用户宿主模板目录

    CREATE_MALL_SPOOL=yes 是否为用户启用邮件通知功能

     /etc/skel 目录

        .bash_logout 用户注销时执行的命令

        .bash_profile 用户登录系统时执行的命令(用户变量)

         .bashrc 用户登录一个新shell时执行的命令

 

    /etc/login.defs文件解释(只对新建用户生效)

MAIL_DIR   /var/spool/mail 用户系统邮件存放目录

PASS_MAX_DAYS  99999 密码最长使用期限

PASS_MIN_DAYS  0 最短使用期限,0代表不受限制

PASS_MIN_LEN 密码最小长度

PASS_WARN_AGE 密码过期警告时间

UID_MIN 最小UID号

CREATE_HOME yes 是否创建宿主目录

UMASK  关于权限反掩码

USERGROUP_ENAB yes 删除用户时是否删除组

ENCRYPT_METHOD SHA512 用户密码的加密方式

 

[展开全文]

操作系统识别用户:

  用户:UID

组:GID(逻辑容器:包含用户,实现多个用户对于某个文件或应用程序分配相同的权限)

用户分类:

    管理员用户 root   UID :0

    普通用户 1000-65535

    程序(系统)用户 1-999

组分类:

    管理员组/普通组

    基本组:Linux中,新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组,作为该用户基本组

    附加组:方便以后为用户分配权限

 

解析:

/etc/passwd 存储用户基本信息(用冒号分开)

    第一列:用户的登录名

    第二列:加密密码(x标识密码占位符,密码保存在/etc/shadow中)

    第三列:UID 用户的ID号

    第四列:组的ID号

    第五列:用户的描述信息

    第六列:用户宿主目录

    第七列:用户默认使用的shell(/etc/shells)

 

/etc/shadow 存储用户的影子口令

    第一列 用户登录名

    第二列 用户加密后的密码

    第三列 最后一次更改密码的时间

    第四列 密码最小使用时间

    第五列 密码最长使用时间

 

/etc/shadow 密码区域解释

三部分组成:用$隔开 $id$salt$encrypted

第一部分 加密算法

    1 md5加密

    5 sha-256加密

    6 sha-512加密

第二部分 随机序列号

第三部分 随机序列号和密码共同加密后的字符串

 

 

加密算法:

    对称加密;加密和使用相同的秘钥

    非对称加密:加密和解密使用不同的秘钥,公钥和私钥

    单向加密,散列加密:提取数据的特征码,常用于数据完整性校验-->>不可逆,定长输出

md5:128位      sha :160位 224位 256位 384位 512位; 雪崩效应,输入数据一小点的变化,会引起巨大变化

 

 

/etc/group 存储组的基本信息

 

 

 

 

 

 

 

 

 

 

[展开全文]

shell:

GUI  包括GNOME KDE XFACE

CLI   sh csh ksh bash(bash是默认的shell程序)

用户登录完成后,系统自动启动shell程序

进程 应用程序的副本,使用PID区分(在系统中,一个进程只认为自己存在)

shell 父shell程序,子shell程序(父子shell之间设置环境互相独立)

cat /etc/shells 查看当前系统支持的shell程序

yum -y install ksh csh 安装 ksh  csh 

exit 退出当前shell程序 

 

bash的特性

    1,命令历史:Linux自动记录系统执行的命令,保存在内存的缓存区中。每个用户的家目录下,有个隐藏的文件 .bash_history保存命令历史。

        history 查看命令历史

        -c 清空命令历史

        -d 删除某一条命令位置

        -w 将命令历史保存到某个文件中

        HISTSIZE 命令历史大小变量

        echo $HISTSIZE 查看其值

    !n  执行历史中第n条命令

   !-n 倒数第n条命令

   !Word 执行命令历史中最近一次以Word开始的命令(Word必须唯一标识要执行的命令)

   !!执行上一次命令

   !$ 引用一个命令的最后一次参数

    ESC键 再按 .   同上

 

    2,管道,IO重定向

    标准输入设备 键盘(stdin)文件描述符 0

    标准输出设备 显示器(stdout)文件描述符 1

    标准错误输出设备 显示器(stderr)文件描述符 2

    当用户没有为指令指定数据来源时,系统要有默认的数据来源

    三种数据流 : 标准输入/出数据流 标准错误输出数据流

     Linux打开文件时,内核会反复调用,对文件进行标识,用文件描述符来标识文件,文件加载完成后用数字标识。

    fd :file description(文件描述符)

IO重定向 把默认输入出数据来源,重新定向到其他的文件或设备 

 

    输出重定向——

        > 覆盖输出重定向

       >> 追加 重定向

       2> 错误覆盖输出重定向 

       2>> 错误追加 重定向

       &> 混合覆盖输出重定向

       &>>混合追加重定向

 

     输出重定向——

         < 输入重定向

 

     管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件(组合小程序,实现大功能)

tr 实现字符转换,不修改源文件   tr 'a-z' 'A-Z'

 cat /etc/login | tr 'a-z' 'A-Z'  输出结果为大写

tee  读取标准输入的数据,并将其内容输出成文件

 

    3,命令别名 

        alias command=COMMAND(原来的命令,最好用‘’引起来) 只执行alias时,会列出系统中所有已经有别名的命令。

        unalias 取消

    4,命令行编辑

        Ctrl + a 快速跳到命令行首

        Ctrl + e 快速跳转到行尾

        Ctrl + u 快速删除光标位置到命令行行首的字符

        Ctrl + k 快速删除光标位置到命令行行尾的字符

        Ctrl + l 清屏

 

    5,命令行展开

        命令补齐: 在PATH变量搜索命令并补齐(PATH命令必须正常;tab键补齐)

        路径和文件补齐 :在系统路径中查找

        命令行补齐功能 不能补齐选项

        命令替换:经常用在shell脚本编程中

            将命令当中的子命令 替换成子命令执行结果 的过程

---> $(command)    'command'(反撇号)

双引号"",弱引用(可实现变量的替换,把变量名替换为变量值)  

反撇号``,命令引用

单引号‘’强引用(不能完成变量替换)

 

    6,命令行通配

* 匹配任意长度的任意字符

? 匹配任意单个字符

[ ] 匹配制定范围内的任意单个字符

--->> [ab] [a-m] [a-zA-Z] [a-zA-Z0-9]

[^] 匹配任意制定范围外的任意单个字符

--->>[^a-z]

[:space:] 表示空格

[:punct:] 所有标点符号

[:lower:] 所有小写字母

[:upper:] 所有大写字母

[:alpha:] 所有字母

[:digit:] 所有数字

[:alnum:] 所有数字和字母

 

    7,变量

 

    8,编程

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

nsswitch.conf:名称解析

login

root--nsswitch.conf-passwd:files

123--nsswitch.conf--shadow:files

名称解析:libnss

authentication:独立验证机制

名称解析和验证是两套独立运行的机制

nsswitchfiles db nis ldap

authenticationfiles db nis ldap kerberos

authentication

PAM:嵌入式认证模块,PAM本身不会执行验证,借助策略和模块来验证

ldd:查看某个服务所支持的模块

语法:ldd service_path

/etc/pam.d/service_name(系统中支持pam认证的服务名称)

/etc/pam.d/oeher(当系统中支持pam认证的服务没有匹配到任何条目时,匹配other中的配置)

/etc/pam.d/service_name格式

type control modules [modules_args]

type:

authentication):身份验证,匹配用户名和密码

account:检查用户名和密码的有效性

password:检查修改密码时,密码是否符合标准

session:检查用户会话相关属性

control

required:一票否决权,继续匹配下面的条目,最后不会匹配(保护系统的安全性)

requirst:一票否决权,不匹配下面的条目,直接给用户返回结果

sufficient:一票同意权,不匹配下面的条目,直接给用户返回结果(慎用)

optional:不影响最终结果

include:引用其他的配置文件,把匹配权交给其他的配置文件(如果其他配置跳出。则整个匹配结束)

substack:引用其他的配置,把匹配权交给其他配置(如果其他配置跳出,则仅仅跳出子匹配)

modules:匹配认证模块

[展开全文]

认证机制:

3A认证

 认证机制:authentication (资源申请者证明自己本身的一个过程)

 授权机制:authorization(用户是否可以访问一个服务或文件,用户访问服务或文件的能力)

 审计机制:audition

root a.txt rw-

loginuser_namepasswd

user_name--UID

www.baidu.com---IP

httpd---80

名称解析:字符解析成数字 数字解析成字符

设计内核时,添加相应代码完成解析

应用程序   nsswitchname services switch    名称解析库(.so)

nssswitch配置文件:/etc/nsswitch.conf

infomethod[[action]]  mehtod[[action]]

[展开全文]

默认情况下,为了安全,Linux系统新建文件时候不添加执行权限

umask:反掩码(/etc/login.defs中定义)

rwx7

文件:rw-rw-rw-666  644=rw-r--r--

目录:rwxrwxrwx777  755=rwxr-xr-x

新建文件时,权限掩码(666)减去反掩码(022)就是新建文件的权限(644

新疆目录时,权限掩码(777)减去反掩码(022)就是新建目录的权限(755

 

linux隐藏权限:

chattr:修改文件的隐藏权限,/ /dev/ /tmp /var/ /etc/目录不受chattr保护

语法:

chattr +-= [options] file_name

a:只能向文件中追加数据,不能删除

i:任何人不能删除文件

A:不同步访问时间

+:添加相应权限

-:删除相应权限

=:设定相应权限

[展开全文]

Linux的权限管理:

权限:是用户对于系统资源以及数据等操作的能力

三类用户权限:

属主:owner

属组:group

其他:other

-rw-r--r--:10

第一位:文件类型

2-4位:文件属主权限

5-7位:文件属组权限

8-10位:其他用户的权限

文件:

r:读权限,可以查看文件的内容,使用cat more等命令

w:写权限,可以修改文件的内容以及删除文件

x:执行权限,可执行文件或脚本

目录:

r:读权限,可以查看目录中的列表,执行ls命令

w:写权限,可以向目录中新建文件或目录等

x:执行权限,可以执行cd命令

权限用数字表示:

r4

w2

x1

---000

rwx111

chownchange owner改变文件属主和属组

-R:递归更改目录的属主或属组

--reference:复制一个目录的权限属性到目标文件上

chown:修改文件属组时,在组名前添加点符号(.)或者冒号(:)

同时修改属主和属组:chown username.group filename

chgrp:change group 修改文件属组

chmod:修改文件或目录权限

语法:

chmod [augo] [+-=] [rwx] file_name

-R:递归更改文件或目录的权限

a:所以用户

u:文件属主

g:文件属组

o:其他用户

+:为用户添加权限

-:为用户减少权限

=:为用户赋予权限

为所有用户添加执行权限

chmod a+x a.txt

[展开全文]

组管理:

groupadd groupdel groupmod gpasswd newgrp groupmems

组分类:

管理员组:root

普通用户组:

系统用户组:

按照用户分类:

管理员组:root

基本组:初始化的组

附加组:有效组

组:逻辑容器,存放用户,实现集中授权

配置文件:

/etc/group

第一列:组的名字

第二列:组的密码区域

第三列:组的ID号(GID

第四列:组中的成员

/etc/shadow

第一列:组的名字

第二列:组的密码

第三列:组的管理员

第四列:组的成员列表

groupadd

-d:创建组时指定组的ID

-r:添加一个系统组

groupdel:删除一个组

默认情况下,不能删除一个用户的基本组,可以通过修改用户的基本组后删除该组

可以删除用户的同时,系统会删除同名基本组(该组是一个用户的基本组)

groupmod:修改组的属性

-g:修改组的GID

-n:为组重命名

gpasswd:为组设置密码,设置组的管理员,添加组成员

-A:为组设置管理员

-M:把一些添加组中,用逗号隔开

-r:为组移除密码

-R:让组的密码失效

-a:为组添加成员(组的管理员操作命令)

-d:删除组成员(组的管理员操作命令)

newgrp:为用户修改有效组(只在当前shell生效)

 exit:退出newgrp

groupmems:为组添加成员,显示组成员列表

 

[展开全文]

passwd:为用户设置密码/锁定解锁用户/查看用户状态

语法:passwd [options] user_name

root用户可以为普通用户设置密码

-l:锁定用户(暂时无法登陆系统)

-u:解锁用户(用户可以登陆系统)

-S:查看用户的状态,显示/etc/shadow文件中各个字段的内容

--stdin:标准输入,经常用在shell脚本编程中为用户自动设置密码

-d:删除用户密码,允许普通用户空密码登陆(不建议使用)

-e:设置用户密码过期,用户再次登录时,需要修改密码

-n:设置密码时设置最小的使用期限,修改/etc/shadow中第四列

-x:设置密码最大使用期限,修改/etc/shadow中第五列

-w:设置密码过期前的警告时间,修改/etc/shadow第六列

-i:修改过期后的宽限时间,修改/etc/shadow第七列

普通用户设置密码时,需要验证当前密码

/etc/shadow:保存用户密码信息的相关文件:

第一列:用户登陆名

第二列:加密密码($id$salt$encrypted password

第三列:最后一次更改密码时间

第四列:密码最小使用时间(用户无法更改密码)

第五列:密码最长的使用期限(用户必须更改密码的时间)

第六列:用户密码过期前的警告时间

第七列:密码过期后的一个宽限时间

第八列:用户密码失效时间

第九列:保留

userdel:删除用户(修改/etc/passwd /etc/shadow /etc/group文件)

语法:userdel [options] user_name

-r:删除用户时,删除用户的宿主目录

usermod:修改用户属性(修改/etc/passwd中内容)

语法:usermod [options] user_name

-c:更改用户的描述信息

-d:更改用户的宿主目录

-e:更改用户的过期时间

-f:修改/etc/shadow第七列内容

-g:修改用户基本组

-G:修改用户的附加组

-l:修改用户的登陆名

-s:修改用户的shell(系统支持的shell程序)

-L:锁定用户

-U:解锁用户

chsh:修改用户的shell程序

语法:chsh [options] user_name

-s:后面跟shell,更改用户的shell

-l:显示当前系统支持的shell/etc/shells)

finger:显示用户的基本信息

finger [options]  user_name

chfn:修改用户基本信息

语法:chfn [options] user_name

-o:修改办公室

-p:修改办公室电话号码

-h:修改家庭电话号码

-f:修改用户名

id:显示用户和组的id

语法:id [options] user_name

-a:忽略其他版本区别

-Z:显示安全上下文内容(selinux

-g:显示有效组的ID

-G:显示所有组的ID

-n:不显示组号,显示名字

-u:显示用户ID

chagel:修改用户密码的时间信息(/etc/shadow)

语法 chagel [options] user_name

-l:列出用户详细的密码参数

-d:修改/etc/shadow第三列内容,后面跟日期

-E:修改/etc/shadow第八列内容,后面跟日期

-I:修改/etc/shadow第七列内容,后面跟天数

-m:修改/etc/shadow第四列内容,后面跟天数

-M:修改/etc/shadow第五列内容,后面跟天数

-W:修改/etc/shadow第六列内容,后面跟天数

[展开全文]

# yum -y install vim make cmake man man-pages mloca  sysstat net-tools

# yum -y groupinstall "Development tools"

#mandb //生成whatis数据库

# updatedb //生成locate数据库

# vim /etc/selinux/config

SELINUX=disabled

useradd:添加新用户(更改/etc/passwd /etc/shadow /etc/group

  useradd [options]  user_name

-c:为用户添加描述信息

-d:指定用户的宿主目录(默认宿主目录在/home目录)

-D:改变默认的值(修改的/etc/default/useradd文件中的选项和值)

 -g:修改组

 -b:修改宿主目录

 -f:修改过期是否停用

 -e:修改过期时间

 -s:修改shell

 -e:新建用户时,设置用户默认过期时间

-g:指定用户的一个基本组(没有该选项,linux新建用户时,会新建一个同名组作为用户的基本组)

-G:新建用户时指定用户的附加组,附加组可以有多个,用逗号隔开

-m:创建宿主目录,和-k一起使用

-M:创建用户时,不为用户创建宿主目录

-p:创建用户时,为用户设置加密的密码(不推荐使用)

-r:创建系统用户(不创建宿主目录,UIDGID使用系统用户ID

-u:指定用户的UID

 

[展开全文]

新建用户命令:useradd

/etc/default/useradd文件解释:

# useradd defaults file    //注释行

GROUP=100                 //可以创建普通组

HOME=/home               //普通用户宿主目录位置(在/home下生成和用户同名的目录,作为用户的宿主目录

INACTIVE=-1                //是否启用户过期停止使用权,-1代表不启用

EXPIRE=                      //设定过期时间,格式为20170511

SHELL=/bin/bash         //设定用户默认使用shell

SKEL=/ect/skel            //新用户宿主目录模板目录

CREATE_MAIL_SPOOL=yes       //是否为用户启用邮件通知功能

创建新用户时,可以设置新用户可登录系统的时间范围

/ect/skel:目录(用户宿主模板目录)

.bash_logout:用户注销时执行的命令

.bash_profile:用户登录系统时执行的命令(用户变量)

.bashrc:用户登录一个新shell时执行的命令

/ect/login.defs文件解释:(只对新建用户生效)

MALL_DIR    /var/spool/mail      //用户系统邮件存放目录

PASS_MAX_DAYS       99999  //密码最长使用期限

PASS_MIN_DAYS         0        //密码使用期限,0代表不受限制

PASS_MIN_LEN             5       //密码最小长度

PASS_WARN_AGE        7       //密码过期警告时间

UID_MIN    1000       //最小UID

UID_MAX    60000    //最大UID

SYS_UID_MIN   201      //系统用户最小UID

SYS_UID_MAX   999     //系统用户最大UID

GID_MIN         1000     //普通组最小GID

GID_MAX        60000   //普通组最大GID

SYS_GID_MIN        201     //系统组最小GID

SYS_UID_MAX       999     //系统组最大GID

GREATE_HOME      yes    //是否创建宿主目录

UMASK                     077   //关于权限反掩码

USERGROUPS_ENAB  yes     //删除用户时是否删除组

ENCRYPT_METHOD SHA512  //用户密码的加密方式

 

[展开全文]

硬盘:OS——应用程序

process(进程):用户执行应用程序的过程

不同应用程序调用相同的库:

权限:用户对于应用程序的执行能力

文件属主:

属组:

其他用户:

用户:多任务,多用户

linux实现权限隔离机制(多用户)

操作系统识别用户:

用户:UID

组:GID(逻辑容器:包含用户;实现多个用户对于某个文件或应用程序分配相同的权限)

用户分类:

管理员用户:root   UID0

普通用户:1000——65535

程序(系统)用户:1——999

组分类:

管理员组/普通组

基本组:linux中,新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组,作为该用户基本组

附加组:方便以后为用户分配权限

解析:

/etc/passwd:存储用户基本信息

/etc/shadow:存储用户的影子口令

/etc/group:存放组的基本信息

/etc/passwd解释:用冒号隔开

第一列:用户的登录名

第二列:加密密码(X表示密码占位符,密码保存在/etc/shadow中)

第三列:用户的ID

第四列:组的ID

第五列:用户的描述信息

第六列:用户的宿主目录

第七列:用户默认使用shell/etc/shells

/etc/shadow解释:用冒号隔开

第一列:用户的登录名

第二列:用户加密的密码

第三列:最后一次更改密码时间

第四列:密码最小使用时间

第五列:密码最长使用时间

/etc/shadow密码区域解释:(格式:$id$salt$encrypted):

三部分组成:用$隔开

第一部分加密算法:

1MD5加密

5SHA-256加密

6SHA-512加密

第二部分:随机序列号

第三部分:随机序列号和密码共同加密后的字符串

加密算法:

对称加密:加密和解密使用相同的密码(效率高,但是不够安全)

非对称加密:加密和解密使用不同的密钥,公钥和私钥

单向加密,散列加密:提取数据特征码,常用于数据完成性校验

1:不可逆

2:定长输出

md5:128位定长输出

sha:160224256 384512

3:雪崩效应:输入数据的一小点变化,会引起结果的巨大变化

 

[展开全文]

管道,IO重定向

计算机体系结构:

控制器:CPU,读取系统指令

运算器:CPU,运算

存储器:RAM(内部存储器:易失性存储器)

输入设备:输入数据,如键盘,硬盘等

输出设备:显示指令执行结果的设备,比如显示器音响,硬盘等。

计算机总线:

地址总线:负责内存寻址

数据总线:负责传输数据

控制总线:负责控制指令

寄存器:CPU中内部临时存储空间

I/O设备:负责计算机内部存储设备和外部存储设备(如硬盘,光盘,U盘等)进行交互的设备

程序:指令+数据

指令:由程序提供,负责加工数据

数据:系统中数据可以有多种来源,比如来自变量,来自文件,来自输入设备

当用户没有为指令指定数据来源时,系统要有默认的数据来源

标准输入输出设备:键盘文件描述符为0,显示器文件描述符为1

标准错误输出设备:显示器文件描述符为2

三种数据流

标准输入数据流/标准输出数据流/标准错误输出数据流

当在linux中打开一个文件时。内核会反复调用,对于文件的标识就很重要了,用文件描述符来标识文件,文件加载完成用数字标识

fdfile descriptor(文件描述等)

IO重定向:把默认输入输出数据来源,重新定向到其他的文件和设备

输出重定向:

>:覆盖输出重定向

>>:追加输出重定向

2>:错误覆盖输出重定向

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

&>:混合覆盖输出重定向

&>>:混合追加输出重定向

输入重定向:

<:输入重定向

管道:连接多条命令,把前一条命令的输出结果作为后一条命令是输入条件(组合小程序,完成实现大功能)

commd1  |  command2  |  commad3 ....

tr:实现字符转换,不会修改源文件

 

[展开全文]

shell特性

shell广义上分为两类:

GUI:包括GNOME KDE XFACE

CLIsh csh ksh bash等(linux发行版本中,bash是默认使用的shell程序)

shell启动:当用户登录完成后,系统会自动启动shell程序

进程:应用程序的副本;使用PID区分(在系统中,一个进程只认为自己存在)

root   student用户

shell:父shell程序和子shell程序(父子shell之间设置环境互相独立)

# cat /etx shells  //查看当前系统所支持程序

#yum -y install ksh csh  //安装kshcshshell程序

#exit  //退出当前的shell程序

shell是一个程序

bash的特性:

1,命令历史:linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中

在每个用户的家目录下,有个隐藏文件 .bash_history保存命令历史

# history  //查看Linux命令历史

-c:清空命令历史

-d:删除某一条命令历史

-w:将命令历史保存到某个文件当中

变量:PATH命令路径变量

           HISTSIZE:命令历史大小变量

    $ echo $HISTSIZE   //查看HISTSIZE变量的值,默认的命令历史是1000

命令历史使用技巧:

n:执行命令历史中的第n条命令

-n:执行命令历史中的倒数第N条命令(n是命令历史编号)

word:执行命令当中命令历史中最近一次以word开始的命令(word必须能够唯一的标识用户想执行的命令)

!!执行上一次命令

$引用一个命令的最后一次参数

ESC (按完松开)再按 .键:引用一个命令的最后一次参数

 

2.管道,重定向

3.命令别名(alisa定义的别名只在当前shell生效)

#alias COMM_ALLAS=COMMAND //只执行alias命令,列出系统中所有的命令别名

注意:执行alias命令时,COMMAND最好用‘‘(引号)引起来

# unalias COMM_ALIAS  //取消命令别名

4.命令行编辑

ctrl+a:快速跳转到命令行的行首

ctrl+e:光标快速跳转到命令行的行尾

ctrl+u:快速删除光标位置到命令行行首的

ctrl+k:快速删除光标位置到命令行行尾的位置

ctrl+l:清屏

5.命令行展开

命令补齐:在PATH变量搜索命令并补齐(path变量必须正常,输入要补齐命令的字符数一定能够唯一标识这条命令:tab键补齐)

tab键两次,列出以某个字符开始的所有的命令

# echo $ PATH  //查看PATH变量的值

路径和文件补齐:在系统路径中查找

命令行补齐功能不能补齐选项

命令替换:(经常会用于shell脚本编程中)

命令替换就是把命令中的子命令替换成子命令执行结果的过程

# echo ”字符串

“”(双引号):弱引用(可以实现变量的替换,把变量名替换为变量值)

反撇号:命令引用

单引号:强引用(不能完成变量替换)

6.命令行通配:globbing

*:匹配任意长度的任意字符

?:匹配任意单个字符

【】:匹配指定范围内的任意单个字符

^】:匹配任意指定范围外的任意单个字符

7.变量

8.编程

 

[展开全文]