zoukankan      html  css  js  c++  java
  • 用户管理

     Linux可以实现多用户登录,共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上甚至同一个逻辑分区或目录里,但由于Linux的用户管理和权限机制,不同用户不可以轻易地查看、修改彼此的文件。

      查看用户

     $ who am i 或 $ who mom likes

     输出的第一列表示打开当前伪终端的用户的用户名,若想直接查看当前登录用户的用户名,输入whoami,去掉空格即可。第二列的pts/0中pts表示为终端,所谓伪是相对于/dev/tty/设备而言的。后面的数据表示打开的为终端的序号。第三列则表示当前伪终端的启动时间。

      who命令其他常用参数

     -a 打印能打印的全部

     -d 打印死掉的进程

     -m 同am i, mom likes

     -q 打印当前登录用户数及用户名

     -u 打印当前登录用户登录信息

     -r 打印运行等级

      创建用户

     在Linux中,root账户拥有整个系统的最高权限,比如新建/添加用户。

     root权限:系统权限的一种,与SYSTEM权限可以理解成一个概念,但高于Administrator权限。root是Linux和Unix系统中的超级管理员用户帐户。

      添加用户

     $ sudo adduser forever  //实践证明 Linux是区分大小写的

     $ su -l forever //用forever账户登录

     $ exit  //退出当前用户  或使用快捷键Ctrl+d

      用户组

     在Linux里面每个用户都有一个归属(用户组),简单说就是一组用户的集合,他们共享一些资源和权限,同事拥有私有资源。

     $ groups forever //查看forever属于哪个用户组  冒号前表示用户,冒号后表示用户所属的用户组

     每次新建用户若不指定用户组,默认会自动创建一个与用户名相同的组。若不在sudo用户组,是不能使用sudo命令的。

     $ cat /etc/group | sort  //cat命令用于读取指定文件的内容并打印到终端输出,| sort表示将读取文本进行一个字典排序在输出。

     $ cat /etc/group | grep -E "shiyanlou|sudo"  

     /etc/group文件格式说明:包含用户组(Group),用户组口令,GID及该用户组所包含的用户,每个用户一条记录。格式为:group_name:password:GID:user_list。其中password为'x'表示密码不可见。

      将其他用户加入sudo用户组

     $ sudo usermod -G sudo forever //将forever加入到sudo组中

      删除用户

     $ sudo deluser forever --remove-home

      

      Linux文件权限

     $ ls -l //查看文件权限

     输出格式为:文件类型和权限 链接数 所有者 所属用户组 文件大小 最后修改日期 文件名

     其中文件类型和权限还依次分为文件类型(第一个开头字母)、拥有者权限、所属用户组权限和其他用户权限。 

     文件类型:'d':目录   'l':软连接   'b':块设备   'c':字符设备   's':socket  'p':管道   '-':普通法文件

     权限类型:'r':允许读权限   'w':允许写权限  'x':允许执行权限

     Linux里一切皆为文件。

     读权限表示可以用cat fileName之类的命令来读取某个文件的内容;写权限表示可以编辑和修改某个文件;执行权限是可以运行的二进制程序文件或脚本。一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其他文件,因为目录文件实际保存着该目录里的文件的列表等信息。

     链接数是指链接到该文件所在的inode结点的文件名数目。  

     文件大小是以inode结点大小为单位来表示的文件大小。可以给ls加上 -lh参数来更直观的查看文件的大小。

      ls命令的常用用法

     $ ls -A 显示除了'.'当前目录,'..'上一级目录之外的所有包含隐藏文件(Linux下以'.'开头的文件为隐藏文件)

     $ ls -Al 查看某一个目录的完整属性,而不是显示目录里面的文件属性

     $ ls -dl<目录名> 显示所有文件的大小

     $ ls -AsSh s为显示文件大小,S为按文件大小排序

      变更文件所有者

     $ touch textdemo   

     $ cd /home/fore  

     $ ls textdemo 

       $ sudo chown shiyanlou textdemo 

     $ cp textdemo /home/shiyanlou

     $ cd /home/shiyanlou

     $ ls textdemo

       修改文件权限

     若不想其他用户读写或执行你的文件,可以对文件的权限进行修改,有两种方式:二进制数字表示和加减赋值操作。

     二进制数字:每个文件的三组(拥有者、所属用户组、其他用户)权限对应一个rwx,1*2^2+1*2^1+1*2^0=7  若存在权限则为1  777相当与public

     $ ll textdemo

     $ echo "echo "hello world"" >textdemo

     $ chmod 700 textdemo

     $ su fore

     $ cat textdemo //权限不够

     加减赋值操作: 'g':group   'o':others  'u':user  '+':增加  '-':去掉

     $ chmod go-rw textdemoe

      $ sudo apt-get update; sudo apt-get install fortune-mod fortune-zh  //可以随机打印出名言的奇怪命令

      $ fortune   //打印出英文名言

      $ fortune-zh  //打印出唐诗宋词。。。

    感触:还是要多用才行,否则都忘光了,看来还是很迫切的需要一台电脑的,只是。。。囊中羞涩。。。

  • 相关阅读:
    微信分享接口
    MySQL的语句执行顺序
    C++类内存分布
    static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
    c++内存中字节对齐问题详解
    msyql中子查询IN,EXISTS,ANY,ALL,SOME,UNION介绍
    使用valgrind检查内存
    GDB调试教程
    Linux一些经典书籍
    C++编程语言学习资料
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/4571369.html
Copyright © 2011-2022 走看看