小编cas*_*cas的帖子

文件权限中的“s”属性是什么意思?

请比较以下两行:

-rws---r-x 1 root root 21872 2009-10-13 21:06 prg1 

-rwx---r-x 1 root root 21872 2009-10-13 21:06 prg2 
Run Code Online (Sandbox Code Playgroud)

上的 setuid 位prg1以及“其他”的读取和执行位是否意味着任何用户都可以使用 root 权限运行它?该 prg2也有读取和执行“其他”,但没有设置setuid位,这是否意味着它仍然可以通过任何用户,但没有root权限运行?

setuid privileges

83
推荐指数
2
解决办法
20万
查看次数

/proc/*/cmdline 是世界可读的有什么原因吗?

也许我今天还没有喝足够的咖啡,但我不记得或想不出任何理由为什么/proc/PID/cmdline应该让世界可读——毕竟不是/proc/PID/environ

使其只能由用户(当然也可能是组和 root)读取可以防止作为命令行参数输入的密码被意外泄露。

当然,它会影响其他正在运行的用户ps等等htop- 但这是一件好事,对吧?这就是不让世界可读的关键所在。

linux permissions proc

31
推荐指数
2
解决办法
7455
查看次数

单线 vs 脚本

我注意到很多问题、答案和评论都表示不屑(有时甚至害怕)编写脚本而不是单行代码。所以,我想知道:

  • 我何时以及为什么应该编写独立脚本而不是“单行脚本”?或相反亦然?

  • 两者的用例和优缺点是什么?

  • 是否某些语言(例如 awk 或 perl)比其他语言(例如 python)更适合单行?如果是这样,为什么?

  • 这只是个人喜好问题还是在特定情况下编写一个或另一个有很好的(即客观的)理由吗?这些原因是什么?

定义

  • one-liner:直接键入或粘贴到 shell 命令行中的任何命令序列。常累及管道和/或使用的语言,如sedawkperl,和/或工具,如grepcutsort

    命令行上的直接执行是定义特征 - 长度和格式无关紧要。“一行”可能全部在一行上,也可能有多行(例如 sh for 循环,或嵌入的 awk 或 sed 代码,带有换行和缩进以提高可读性)。

  • script: 任何解释性语言中的任何命令序列,它们被保存到一个文件中,然后被执行。脚本可能完全用一种语言编写,也可能是使用其他语言的多个“单行”的外壳脚本包装器。


我有我自己的答案(稍后我会发布),但我希望这成为关于该主题的规范问答,而不仅仅是我的个人意见。

scripting conventions

27
推荐指数
8
解决办法
7334
查看次数

为什么 PDFTK 说它找不到就在那里的文件?

我正在尝试将一堆 PDF 编译成一个文档。ls显示文件位于我所在的目录中并且它们是可读的 ( -rw-r--r--)。但是当我尝试运行时pdftk 2017.pdf cat output test.pdf出现错误:

Error: Unexpected Exception in open_reader()
java.io.FileNotFoundException: 2017.pdf (Permission denied)
   at gnu.java.nio.channels.FileChannelImpl.open(libgcj.so.16)
   at gnu.java.nio.channels.FileChannelImpl.<init>(libgcj.so.16)
   at gnu.java.nio.channels.FileChannelImpl.create(libgcj.so.16)
   at java.io.RandomAccessFile.<init>(libgcj.so.16)
   at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PRTokeniser.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
Error: Failed to open PDF file: 
   2017.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.
Run Code Online (Sandbox Code Playgroud)

如果我向该操作添加更多文件,我只会收到每个文件的错误。

我可以从命令行重命名 PDF,但mv 2017.pdf foo.pdf出现相同的错误。Error: Unexpected Exception in open_reader() java.io.FileNotFoundException: foo.pdf (Permission denied)

如果我尝试调用一个不存在的文件,例如。 pdftk 123.pdf cat output test.pdf …

java pdftk dropbox

24
推荐指数
2
解决办法
8711
查看次数

是否可以在现代 PSTATE 驱动程序下设置*恒定*最低 CPU 频率?

新的pstate英特尔驱动程序让我很恼火,因为他们移除了旧的powersave调节器,让我可以设置最低可用的 CPU 频率,并在安静、寒冷的笔记本电脑中运行数小时或数天的数值模拟。更糟糕的是,他们现在所说powersave的基本上是旧的调速器ondemand,即 CPU 频率随着负载而上升的模式,并伴随着该死的风扇噪音:

由于这些策略在驱动程序中实现,因此它们与 cpufreq 缩放调控器实现不同,即使它们在 cpufreq sysfs (scaling_governors) 中具有相同的名称。例如,“性能”策略类似于 cpufreq(TM)“性能”调控器,但“powersave”与 cpufreq“powersave”调控器完全不同。这里的策略类似于 cpufreq "ondemand",其中请求的 P-State 与系统负载相关。

(摘自https://www.kernel.org/doc/Documentation/cpu-freq/intel-pstate.txt

现在,请问有没有其他方法可以将我的 CPU 频率保持在最低水平?这对我来说真的很重要。如果我最终无法设置恒定的最低 CPU 频率,我只是更喜欢将笔记本电脑通过窗户倾倒。这就是我使用笔记本电脑的方式,这就是我想要一台笔记本电脑的用途,而且我已经尝试实现这一目标好几天了!

我正在尝试这个,但它不起作用:

echo 42 | sudo dd of=/sys/devices/system/cpu/intel_pstate/max_pref_pct
Run Code Online (Sandbox Code Playgroud)

将最大速度设置为 42%,它没有任何影响,每当我做某事时,CPU 都会继续运行到 100%。我究竟做错了什么?(我应该重启一些服务还是什么?)

有没有办法得到这个?另外,非英特尔 CPU 允许我这样做吗?我不介意再买一台能解决问题的笔记本电脑。

cpu-frequency

20
推荐指数
1
解决办法
1万
查看次数

允许所有用户在目录中创建文件,但只有所有者可以删除

我如何使用,最好是单个chmod命令,它允许任何用户在目录中创建文件,但只有文件的所有者(创建它的用户)可以删除他们自己的文件,但该目录中没有其他人。

我想使用:

chmod 755 directory
Run Code Online (Sandbox Code Playgroud)

由于用户可以创建文件并删除它,但不允许用户删除其他人的文件吗?

我只希望创建文件的人能够删除他们自己的文件。因此,任何人都可以创建文件,但只有创建文件的人才能删除该文件(在目录中)。

linux permissions

19
推荐指数
2
解决办法
1万
查看次数

rsyslogd 反复 HUP

请注意,对于 VM 框,获取 rsyslogd 进程得到 HUPed 的日志。除了一些论坛上的一些帖子说这是为了logrorate之外,没有找到任何想法。任何想法如何解决/解决这个问题..

messages-20141011:2014-10-10T04:02:02.054134-06:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="364" x-info="http://www.rsyslog.com"] rsyslogd was HUPed

messages-20141011:2014-10-11T04:02:02.079917-06:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="739" x-info="http://www.rsyslog.com"] rsyslogd was HUPed

messages-20150124:2015-01-24T04:02:01.497596-07:00 udr-oradl01 rsyslogd: [origin software="rsyslogd" swVersion="5.8.12" x-pid="819" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Run Code Online (Sandbox Code Playgroud)

linux rhel rsyslog vmware

14
推荐指数
1
解决办法
2万
查看次数

如何计算bash中第一个字段排序的行

这是 INPUT 的一个片段:

...
####################
Bala Bela;XXXXXX12345;XXXXXX12345678;A
SERVER345Z3.DOMAIN.com0
SERVER346Z3.DOMAIN.com0
SERVER347Z3.DOMAIN.com0
SERVER348Z3.DOMAIN.com0
ssh-dss ...pubkeyhere...
####################
Ize Jova;XXXXXX12345;XXXXXX12345;A
SERVER342Z3.DOMAIN.com0
SERVER343Z3.DOMAIN.com0
SERVER345Z3.DOMAIN.com0
ssh-rsa ...pubkeyhere...
...
Run Code Online (Sandbox Code Playgroud)

这是我需要的 OUTPUT 片段:

Bala Bela;XXXXXX12345;XXXXXX12345678;A
4
Ize Jova;XXXXXX12345;XXXXXX12345;A
3
Run Code Online (Sandbox Code Playgroud)

所以我需要来自 INPUT 的 OUTPUT,以便我可以看到有多少行以“SERVER”开头给给定用户(例如:“Bala Bela;XXXXXX12345;XXXXXX12345678;A”)。我怎样才能在 bash 中做到这一点?

bash text-processing

9
推荐指数
3
解决办法
423
查看次数

4.0 和更高版本的 Linux 内核中的 USB 驱动程序有什么变化?

内核高达 3.19,我所有的 USB 设备都可以完美运行。

升级到 4.0 或更高版本后,我的一些 USB 设备停止工作,内核产生如下错误:

[    3.369436] usb 9-1: device descriptor read/64, error -62
[    3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci
[    3.997572] usb 9-1: device not accepting address 4, error -62
[    4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci
[    4.524792] usb 9-1: device not accepting address 5, error -62
[    4.524911] usb usb9-port1: unable to enumerate USB device
[   15.402105] usb 9-1: new full-speed USB …
Run Code Online (Sandbox Code Playgroud)

linux kernel usb dvb

9
推荐指数
1
解决办法
2914
查看次数

Vi 撤消更新的文件?

我刚刚删除了文件中的一堆文本并保存了它。

是否可以恢复旧版本的文件?

我知道我应该采取备份,只是试试我的运气。

vim

8
推荐指数
1
解决办法
9221
查看次数