Linux-2020-spring-3-11

来自SUDA-HLT
跳到导航 跳到搜索

上节课内容回顾

文件目录结构(有标准规定)

 根目录 / 
 家目录 /home/username
 

增加或删除用户(必须通过root权限)

 useradd 低级(更底层)的命令
 adduser
 deluser
 sudo deluser zhli
 sudo adduser yli

sudo:以root的身份执行后面的命令

 执行时,需要输入这个用户的密码,注意不是root密码
 root密码和sudoer的密码都应该足够复杂,并且尽量定期更换。可以把密码写到纸上,放到安全的地方。
 在Ubuntu下,只有具有sudo权限的用户(称为sudoer)可以调用sudo。
 问题1:有sudo权限的话,可否修改root密码?
 问题2:系统管理时,哪些人可以知道root密码?哪些人可以是sudoer?
         sudoer很强大,和root是一样的,这也就是我在视频中讲到的篡权的意思,sudoer可以把root密码改掉,然后把其他sudoer权限都取消,这样系统就被劫持了。
         另外,sudoer文件有可能会破坏,我感觉还是有root密码比较安全
         sudo更安全。直接登录root,然后敲命令,比较危险,有可能会忘了自己是root。前面加一个sudo,会增加一点安全性,麻烦=安全
        系统管理员通常都通过sudo来管理,而不是直接用root。一个系统可以有多个管理员,即多个sudoer

上课中出现的权限问题:用户A可以随便访问用户B的所有文件?

  原因是:Ubuntu默认的权限设置就是这样的,/home/zhli的权限是drwxr-xr-x,那么others就可以进入目录(x)并读取内容(r)
  这样无法实现数据保密
  怎么改变这个默认行为呢?

su替换用户

  su yli:切换到yli这个用户下。
  su :若后面没有参数,默认切换到root账户下。
  exit:退出

绝对路径和相对路径

  绝对路径:以根目录开始的路径,表示从根目录开始到目标文件的路径
  相对路径:从当前目录(不是从根目录开始)到目标文件的路径
  相关命令
     ls;  ls -a;   
     pwd
     cd
     touch(创建一个文件;如果一个文件已经存在,就会更新文件的时间)
     date, cal, calendar, bc, echo
     uname -a
     lsb_release -a # 查看系统发行相关信息,LSB(linux standard base)

几个简单命令

 uptime:系统启动的时间
 hostname:机器名
 who:显示当前登录的用户,以及用户从哪里登录进来的ctrl+alt+f7(登录终端)
 users:目前有几个用户登录了这个系统
 w:和who类似,同时可以显示每个用户在干啥
 whoami:写程序的时候会用到
      tty7(teletypewriter缩写,7号终端,即图形界面终端);pts/0(pseudo-terminal slave的缩写,虚拟终端:图形终端下的终端应用程序)

命令的语法、man、ls

命令的格式

 PS $/# cmd(命令) option(选项) argument(参数)
 PS: prompt symbol,提示符,通常包括用户名、机器名、当前工作目录等信息,可以通过修改PS1环境变量来设置
 # 表示root
 $ 表示普通用户 
 命令,对应一个标志符,表示做什么操作
 选项:操作方式
 参数:操作对象

默认参数的含义

  默认的操作对象,类似于函数参数的默认值:double pow(double x, int y=2)
  $ cd 默认切换到当前用户的家目录下
  $ ls 默认看当前目录下的文件信息
  $ su 默认切换为root

man的用法

 man 3 printf:(synopsis 概要; description 描述)看在线文档
 man ls 
       LS(1)
       Name
       Synopsis
            ls [option]... [file]...可以跟0个到n个选项或者文件)
 man pwd
           

option:可以是长选项(--all)或者是短选项(-a),ls --all和ls -a实现的效果是一样的。


ls的用法

          ls -d /home:看目录自身的信息
          ls -a /home:
          ls -c /home:
          ls -l /home:长格式
             a、第一个字符d表示文件夹,-表示文件,接下来的连续三个owner的权限,然后三个是group的权限;最后三个是other的权限;
             b、24:硬链接数
             c、zhenghua:owner
             d、zhenghua:group
             e、4090:表示文件所占的物理空间,表示的是该目录自身所占内存的大小,不是该目录下所有文件相加所占的空间。
             f、mar 26 10:31 :时间信息
             g、zhenghua :文件的名字
         ls -r,--reverse /home:逆序
         ls -R /home:递归显示
         ls -S /home:
         ls --color=none /home:
         ls -h /home:
         ls -lh:大小信息
         ls -t /home:
            文件的时间:create创建时间;modify修改时间;acess访问时间
         ls -al:

上课问题讨论

sudo su和su的区别

  sudo的意思是,以root的权限做这件事,然后输入当前sudoer的密码,就可以工作
  sudo su anotherUserName:以root的权限切换用户,输入自己的密码
  su anotherUserName:切换用户,输入anotherUserName的密码
  sudo su:切换为root,输入自己的密码(等价于:sudo su root)
  su:切换为root,输入root的密码(等价于:su root)
  如果一个用户是sudoer,那么通过输入自己的用户,就可以做任何事情,没有任何限制,包括切换为root、修改root密码等

2021.9.11

ls的几个选项:
      -i, --inode
             print the index number of each file
      -r, --reverse
             reverse order while sorting
      -R, --recursive
             list subdirectories recursively
rm的
      -i (interactive)   prompt before every removal
同一个字母表示的选项的含义,对于不同的命令是不同的
linux扩展文件属性:lsattr chattr(sudo权限下做)
 在通常情况下,linux下文件具有的属性都是读写和执行;但这些属性属于高层次的文件属性,它和具体的文件文件系统无关。在文件系统这一层,文件同样也具有很多属性,chattr和lsattr指令就是设置和查看基于ext2/ext3文件系统的底层属性。(这段话包括后面的选项解释,都是别人的话,要改写一下)
 +:在原有参数的基础上,追加参数 
 -:在原有参数基础上,移除参数 
 =:更新为指定参数 
 -a:设定只能想文件中添加数据,而不能删除。 
 -i:设定后,不能对文件进行删除写入改名等等操作 
 -R:递归处理 
 -V:显示执行过程
  sudo chattr +i x2
  sudo chattr -i x2