Linux权限管理与命令使用技巧

78、如何在不向用户提供超级用户密码的情况下,允许其执行特权命令?

可以通过以下几种方式允许用户在不获取超级用户密码的情况下执行特权命令:

  1. 使用 sudo 工具,它可以根据配置文件(如 /etc/sudoers ),让特定用户在特定条件下执行特权命令,且使用用户自己的密码进行身份验证。在 OS X 中,任何属于 admin 组的账户都可以使用 sudo 以 root 身份运行任何命令,即使 root 账户未启用。

  2. 创建 setuid 文件,普通用户执行由 root 拥有且具有 setuid 权限的程序时,该程序将以 root 权限运行,但用户自身权限不变,程序运行结束后,用户权限恢复原状。不过,root 拥有的 setuid 程序对系统安全有极大风险,系统中应尽量减少此类程序。

79、假设你以超级用户身份工作。如何杀死进程1648?如何杀死所有运行Safari的进程?

杀死进程1648,可先尝试使用 kill –TERM 1648 ,若此命令失败,再使用 kill –KILL 1648

杀死所有运行 Safari 的进程,首先使用 ps ax | grep -i safari 确定 Safari 的调用方式,然后以 root 身份运行 killall Safari

80、制定一个生成密码的策略,使入侵者不太可能猜到,但你自己能够记住。

可以采用以下策略来生成难以被猜到且自己能记住的密码:

  1. 结合数字、大小写字母和标点符号,长度至少为 7 - 8 个字符。
  2. 避免使用控制字符,防止系统特殊含义导致无法登录。
  3. 不使用英语或其他语言中的单词、人名、地名、宠物名等容易被猜到的内容,也不使用电话号码、生日等信息及其排列组合。
  4. 密码包含至少两个字母和一个数字。
  5. 不使用登录名、登录名的反向形式或登录名偏移后的形式。
  6. 若更改密码,新密码与旧密码至少有三个字符不同,且大小写变化不算不同字符。
  7. 可以使用自己熟悉的句子的首字母,再加上一些数字和符号,例如自己喜欢的歌词、名言等。

81、如果你在没有root权限的情况下使用launchctl加载作业,会启动一个新的launchd副本。为什么Mac OS X不直接将作业加载到已经作为进程1运行的launchd副本中呢?

出于安全原因,非root用户不能与系统的主launchd进程(PID为1)通信。

82、su 命令的字母代表什么?(提示:不是 Super - user)除了给自己授予超级用户权限外,使用 su 还能做什么?如果你不知道 Alex 的密码但知道 root 密码,如何以 Alex 的身份登录?如何建立与 Alex 首次登录时相同的环境?

`su` 代表 *substitute user*。除了给自己授予超级用户权限外,`su` 可以创建一个具有指定用户身份和权限的 shell 或执行程序。在命令行中跟随用户名,若你是 root 或知道该用户的密码,就能获得该用户的身份。

若不知道 Alex 的密码但知道 root 密码,可使用命令 `su Alex` 并输入 root 密码来以 Alex 身份登录。要建立与 Alex 首次登录时相同的环境,可使用 `su - Alex` 或 `su -l Alex` 命令,这样不仅用户和组 ID 会变为 Alex 的,整个环境也会是 Alex 的,登录 shell 会在显示提示前执行相应的启动脚本。

83、每个C程序都有什么函数?为什么要把大型程序拆分成多个函数?

每个 C 程序都必须有一个名为 main 的函数。将大型程序拆分成多个函数,能让程序更易读和维护,还能提高开发和维护效率,避免重复输入相同代码,修改代码时也只需改一处。

84、你可以使用什么命令将 prog.c 和 func.c 编译成一个名为 cprog 的可执行文件?

可以使用命令 gcc -o cprog prog.c func.c 来将 prog.c func.c 编译成一个名为 cprog 的可执行文件。

85、请展示两种在C程序中指示C预处理器包含头文件 /usr/include/math.h 的方法。假设 declar.h 头文件位于您主目录下名为 headers 的子目录中,请描述两种指示C预处理器在C程序中包含此头文件的方法。

包含 `/usr/include/math.h` 的两种方法:

1. 使用尖括号,在程序源文件中使用 `#include <math.h>`,尖括号会指示C预处理器在标准目录列表(如 `/usr/include`)中查找头文件;
2. 使用 `-I` 选项指定目录,编译时使用 `gcc -I/usr/include your_program.c`。

包含 `declar.h` 的两种方法:

1. 使用双引号包含相对路径,在程序源文件中使用 `#include "headers/declar.h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值