翻译

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
先进编程在UNIX环境,再版(阿狄森-维斯利专家计算的系列)的图象
RHCE红色帽子的图象证明了工程师Linux研究指南(检查RH302) (证明新闻)
开始Google Maps的图象API 3
机器人无线应用开发的图象

认为Korn的壳93验核和

Korn壳93 (ksh93)是唯一的UNIX或GNU/Linux壳我知道那,与适当的设定,支持少量每用户会计和验核。 这个岗位试图解释这些设施和显示您如何访问和操作发生的会计和审计记录。

每用户会计是ksh93特点自这壳的早期。 它是写出每用户命令的一个的一种相当原始设施(未用文件证明的)纪录被执行。

一种验核的设施在2008年7月增加了。 这比会计设施稍微老练因为它是构形的并且写出一个详情记录当地或对被执行的每用户命令的一个远程系统。 这种设施可以被用于监测,跟踪,记录和验核一个或更多用户的活动一个系统的,包括系统管理员。

两设施为交互式用户只运作。 默认情况下两种设施没有使能。 实际上,您必须进入ksh93原始代码,修改主要文件编写使能某些编译时间的选择,然后重新编译来源。 这在许多情况下不是一琐细的锻炼,因为重建ksh93也要求您重建一定数量的图书馆。 原始代码是可利用的在AT&T研究 AST软件下载站点。

要修造与使能的这些设施的ksh93,您必须修造ksh93可执行使用ast基地或与INIT包裹一起ast打开包裹。  正共享程序库没有建造,如果您使用astksh包裹,都不是会计和验核设施。 我从未调查这为什么如此是,但是我肯定Glenn捕野禽者大卫Korn有他们的原因。

您需要如下修改在../src/cmd/ksh93/Makefile的编译时间的选择使能一或两设施。

SHOPT_ACCT ==     1        /*会计*
SHOPT_ACCTFILE == 1        /*每用户会计信息*
SHOPT_AUDIT ==    1        验核的/* *
SHOPT_AUDITFILE == “/etc/ksh_audit”/*审核文件*

在您重新编译来源之后,可执行新的ksh位于../arch/…./bin/补充指南。  要看什么选择实际上被编写了入一特殊可执行,请打印出来壳版本串。

打击3.2$ pwd
/home/fpm/ksh/build/arch/linux.i386-64/bin
打击3.2$ ls - Al ksh
- rwxr-xr-x 1 fpm fpm 1356931 2008-12-26 16:31 ksh
打击3.2$ ./ksh
$回声$ {.sh.version}
版本AJLM 93t+ 2008-12-10
$回声$KSH_VERSION
版本AJLM 93t+ 2008-12-10

选择串AJLM意味着(a)验核使能, (j)每个完整工作一个SIGCHLD陷井支持, (l)支持每用户会计,并且(m)支持multibyte字符。

使用SHACCT环境变量,每用户会计使能。  打开每用户会计,被设置的SHACCT到您希望存放会计记录文件的名字。

出口SHACCT= " /tmp/ksh_acctfile "

这一部分的发生的文件。 注意时间被存放作为十六进制秒钟从世纪。

$猫/tmp/ksh_acctfile
回声$ {.sh.version}     fpm     495990d8
pwd     fpm     495990da
id      fpm     495990dd
日期    fpm     495990e3
出口    fpm     495990e5

以下shell script程序可以被用于访问在这个文件的纪录和输出他们以一个更加有用的格式。

#! /bin/ksh93
ACCTFILE= " /tmp/ksh_acctfile "

printf “日期       时间     注册  COMMAMD \ n \ n "

#设置IFS只选中
当IFS= "时     “读cmdstr命名hexseconds

    longsecs=$ (printf “%ld” “0x$ {hexseconds} ")
    timestr=$ (printf “% (%Y-%m-%d %H :%M :%S) T” “#$ {longsecs} ")
    印刷品$timestr, $name, “$cmdstr”
做  <>

祈求这个剧本给上面会计记录的以下产品。

$ ./parse_acctfile
日期       时间     注册  COMMAMD

2008-12-29 22:09 :12, fpm,回声$ {.sh.version}
2008-12-29 22:09 :14, fpm, pwd
2008-12-29 22:09 :17, fpm, id
2008-12-29 22:09 :23, fpm,日期
2008-12-29 22:09 :25, fpm,出口

其次我们转移我们的对验核的设施的注意力。  除重建与SHOPT_AUDIT选择的ksh93之外,您在哪里必须创造在每个系统的一个审计配置文件告诉ksh93存放审计记录和指定哪些用户将被验核。  配置文件的默认位置是/etc/ksh_audit但是那个地点在主要ksh93文件编写被改变。  配置文件应该包含定义了文件写审计记录的线,跟随由命令是引起审计记录每名用户的UID。  这被用于的配置文件引起这个岗位的这部分的审计记录。

$猫/etc/ksh_audit
/tmp/ksh_auditfile; 500

这个配置文件指定审计记录将给/tmp/ksh_auditfile被写为是UID是500的用户。  注意领域符号是分号。

这匹配在这个岗位以前显示的会计记录在/tmp/ksh_auditfile存放的审计记录。  字段分隔符是分号。  第一个领域是执行命令的用户的UID。  第二个领域是时间在几秒钟内从世纪。  第三个领域是命令被执行的终端设备,并且最后的领域是用户执行的实际命令。

500; 1230606552; /dev/pts/2; 回声$ {.sh.version}
500; 1230606554; /dev/pts/2; pwd
500; 1230606557; /dev/pts/2; id
500; 1230606563; /dev/pts/2; 日期
500; 1230606565; /dev/pts/2; 出口

前面,这解析这个审核文件,用实际用户名和秒钟替换UID从与实际数据和时间的世纪的一个简单的ksh93剧本,并且输出改进的纪录以逗号被分离的价值(CSV)格式。

#! /bin/ksh93

AUDITFILE= " /tmp/ksh_auditfile "
PASSFILE=

当IFS= "时; “读uid秒tty cmdstr

   name= ""
   当IFS= "时:“读pwname pword pwuid休息
   
      如果[[“$uid” == “$pwuid”]]
      然后
          name=$pwname
          断裂
      fi
   做  <>

这上面审计记录的产品。

2008-12-29 22:09 :12, fpm, 500, /dev/pts/2,  回声$ {.sh.version}
2008-12-29 22:09 :14, fpm, 500, /dev/pts/2,  pwd
2008-12-29 22:09 :17, fpm, 500, /dev/pts/2,  id
2008-12-29 22:09 :23, fpm, 500, /dev/pts/2,  日期
2008-12-29 22:09 :25, fpm, 500, /dev/pts/2,  出口

如果使用/dev/udp/host/port句法或/dev/tcp/host/port句法,审计记录的部下的操作系统的支持网络可以由在间网络的ksh93送到另一个系统。  这个机制在只有具体人员有access.&nbsp为例的一个被巩固的中心化系统,以下审计配置文件线可能被用于存放审计记录选定是的用户的审计记录UID是500应该送使用UDP到syslog网络端口(514)在是IP是192.168.0.99的一个远程系统。

/dev/udp/192.168.0.99/514; 500

这syslog邪魔存放的同样审计记录在远程系统。

2008-12-29 22:09 :12 192,169.0.115 500; 1230606552; /dev/pts/2; 回声$ {.sh.version}
2008-12-29 22:09 :14 192.169.0.115 500; 1230606554; /dev/pts/2; pwd
2008-12-29 22:09 :17 192.169.0.115 500; 1230606557; /dev/pts/2; id
2008-12-29 22:09 :23 192.169.0.115 500; 1230606563; /dev/pts/2; 日期
2008-12-29 22:09 :25 192.169.0.115 500; 1230606565; /dev/pts/2; 出口

根据syslog邪魔的配置您的特殊系统的,纪录的第一个部分也许包含更多或较少信息或者不同地被格式化,但是纪录的最后的部分,即ksh93送的审计记录应该以标准审计记录格式。

注意,当在ksh93之内的验核的和认为的设施可能提供您以关于一个或更多用户的行动的有用的信息在系统或系统时,这些设施不应该把视为提供被加强的安全如同被信任的计算机基础(TCB)。  有徊避这些设施许多方式。  例如,一名博学的用户可能换成不同的壳例如他们的行动不会被记录的打击。  有一定数量的其他方式,但是我不会谈论他们在这儿。

大多数信息在这个岗位提供了没有在我可以通过搜寻互联网找到的一个唯一地方任何地方被提供。  ksh93联机资料不提及会计或验核设施。  ksh93原始代码是有些隐晦的。  我通过学习在../src/cmd/ksh93/edit/history.c的代码gleened大多数这信息。  如果我得到了任何东西错误,请告诉我,以便我可以更新这个岗位。
 

对认为Korn的壳93的1个评论验核和

  • 匿名

    我花费了与验核的作用的不少时间,并且我必须体会那
    - tha设置文件必须是可读的世界(。.must由activites被验核)的用户是可读的
    -日志文件一定是可写由活动被验核或被采伐的所有用户。

    感谢解析剧本:)