Linux2014. 9. 3. 11:04
$ set -o vi
를 사용하면 명령어 줄 에서 vi 처럼 편집이 가능한데
증상으로는 home 키를 누르거나 하면 대문자로 바뀐다 -_-
아무튼 home / end를 쓰기 위해서는
vi 모드를 해제해야 하는데
vi 모드의 반대(?)는 emcas 모드?!!?!?

$ set -o vi
$ set -o emacs

$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
$ set -o
allexport       off
braceexpand     on
emacs           off
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              on
xtrace          off

'Linux' 카테고리의 다른 글

rdate / ntp  (0) 2014.09.17
nice  (0) 2014.09.16
bash 파일 상태 관련 if  (0) 2014.09.01
audit  (0) 2014.08.30
history - bash  (0) 2014.08.30
Posted by 구차니
Linux/Ubuntu2014. 9. 3. 10:31
hold 라고 하는데.
ubuntu 10.04 LTS에서 찾아보니..

apt-mark로 처리가 가능한 것으로 보인다.
NAME
       apt-mark - mark/unmark a package as being automatically-installed

SYNOPSIS
       apt-mark [-hv] [-f=FILENAME] {markauto | unmarkauto} package...  | showauto

DESCRIPTION
       apt-mark will change whether a package has been marked as being automatically installed.

       When you request that a package is installed, and as a result other packages are installed
       to satisfy its dependencies, the dependencies are marked as being automatically installed.
       Once these automatically installed packages are no longer depended on by any manually
       installed packages, they will be removed by e.g.  apt-get or aptitude.

       markauto
           markauto is used to mark a package as being automatically installed, which will cause
           the package to be removed when no more manually installed packages depend on this
           package.

       unmarkauto
           unmarkauto is used to mark a package as being manually installed, which will prevent
           the package from being automatically removed if no other packages depend on it.

       showauto
           showauto is used to print a list of automatically installed packages with each package
           on a new line.
 

문제는..
apt-get에서 --ignore-hold 라는게 있다는 점 -_-a 
      --ignore-hold
           Ignore package Holds; This causes apt-get to ignore a hold placed on a package. This
           may be useful in conjunction with dist-upgrade to override a large number of undesired
           holds. Configuration Item: APT::Ignore-Hold.
 
[링크: http://askubuntu.com/questions/18654/how-to-prevent-updating-of-a-specific-package]

'Linux > Ubuntu' 카테고리의 다른 글

manpath  (0) 2014.12.07
ctrl - alt - t 로 터미널 실행  (0) 2014.09.04
Ubuntu 14.04 LTS desktop 64bit edition  (0) 2014.06.14
우분트 포트란 패키지  (4) 2014.06.13
우분투 설치된 패키지 목록 얻기  (0) 2014.05.24
Posted by 구차니
Linux2014. 9. 1. 15:59

PrimaryMeaning
-a FILE ] True if FILE exists.
-b FILE ] True if FILE exists and is a block-special file.
-c FILE ] True if FILE exists and is a character-special file.
-d FILE ] True if FILE exists and is a directory.
-e FILE ] True if FILE exists.
-f FILE ] True if FILE exists and is a regular file.
-g FILE ] True if FILE exists and its SGID bit is set.
-h FILE ] True if FILE exists and is a symbolic link.
-k FILE ] True if FILE exists and its sticky bit is set.
-p FILE ] True if FILE exists and is a named pipe (FIFO).
-r FILE ] True if FILE exists and is readable.
-s FILE ] True if FILE exists and has a size greater than zero.
-t FD ] True if file descriptor FD is open and refers to a terminal.
-u FILE ] True if FILE exists and its SUID (set user ID) bit is set.
-w FILE ] True if FILE exists and is writable.
-x FILE ] True if FILE exists and is executable.
-O FILE ] True if FILE exists and is owned by the effective user ID.
-G FILE ] True if FILE exists and is owned by the effective group ID.
-L FILE ] True if FILE exists and is a symbolic link.
-N FILE ] True if FILE exists and has been modified since it was last read.
-S FILE ] True if FILE exists and is a socket.
FILE1 -nt FILE2 ] True if FILE1 has been changed more recently than FILE2, or if FILE1 exists and FILE2 does not.
FILE1 -ot FILE2 ] True if FILE1 is older than FILE2, or is FILE2 exists and FILE1 does not.
FILE1 -ef FILE2 ] True if FILE1 and FILE2 refer to the same device and inode numbers.
-o OPTIONNAME ] True if shell option "OPTIONNAME" is enabled.
[ -z STRING ] True of the length if "STRING" is zero.
[ -n STRING ] or [ STRING ] True if the length of "STRING" is non-zero.
[ STRING1 == STRING2 ] True if the strings are equal. "=" may be used instead of "==" for strict POSIX compliance.
[ STRING1 != STRING2 ] True if the strings are not equal.
[ STRING1 < STRING2 ] True if "STRING1" sorts before "STRING2" lexicographically in the current locale.
[ STRING1 > STRING2 ] True if "STRING1" sorts after "STRING2" lexicographically in the current locale.
[ ARG1 OP ARG2 ] "OP" is one of -eq-ne-lt-le-gt or -ge. These arithmetic binary operators return true if "ARG1" is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to "ARG2", respectively. "ARG1" and "ARG2" are integers.

[링크 : http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html]
[링크 : https://linuxacademy.com/blog/linux/conditions-in-bash-scripting-if-statements/]

'Linux' 카테고리의 다른 글

nice  (0) 2014.09.16
bash VI 모드 / Emacs 모드  (0) 2014.09.03
audit  (0) 2014.08.30
history - bash  (0) 2014.08.30
dd - disk duplicate  (0) 2014.08.29
Posted by 구차니
Linux2014. 8. 30. 21:43
history 등으로 추적하기에는 힘들기 때문에
(만약에 외부에서 들어와서 해킹하면 history 삭제는 기본일테니?)
audit을 통해 사용자들의 명령어를 전부 기록하는 방법이 있다고 한다.

물론 보안적인 목적이 아니라면..
개인의 입력을 전부 녹화하는 거라
웬지 사용자 측면에서 찜찜할 수 밖에 없는지라
크게 권장할 만한 기술은 아닐것으로 보여진다.

[링크 : http://serverfault.com/questions/336217/how-do-i-log-every-command-executed-by-a-user]
[링크 : http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html]

'Linux' 카테고리의 다른 글

bash VI 모드 / Emacs 모드  (0) 2014.09.03
bash 파일 상태 관련 if  (0) 2014.09.01
history - bash  (0) 2014.08.30
dd - disk duplicate  (0) 2014.08.29
/etc/login.defs 로 암호 최소 길이 수정하기  (0) 2014.08.29
Posted by 구차니
Linux2014. 8. 30. 20:46
history는 지금까지 사용한 명령어의 목록을 보여주는 프로그램이다.
(정확하게는 쉘 명령어)
[링크 : http://linux.die.net/man/1/history] bash built-in command
[링크 : http://linux.die.net/man/3/history] library

typedef void * histdata_t;

typedef struct _hist_entry {
  char *line;
  char *timestamp;
  histdata_t data;
} HIST_ENTRY;

HIST_ENTRY ** the_history_list;

typedef struct _hist_state {
  HIST_ENTRY **entries; /* Pointer to the entries themselves. */
  int offset;           /* The location pointer within this array. */
  int length;           /* Number of elements within this array. */
  int size;             /* Number of slots allocated to this array. */
  int flags;
} HISTORY_STATE;

$HISTFILE에 history 내용이 저장되며
bash일 경우 ~/.bash_history 에 저장된다.

$HISTTIMEFORMAT을 통해 history 명령시 명령을 수행한 시간등을 같이 출력이 가능해진다.


개인사용자가 사용한 명령어를 보는데 있어서(사고 쳤을때 라던가?)
제한적이지만(히스토리 기능을 꺼버릴수도 있으니) 개별 사용자의 history를 추적하는것도 방법이긴 하나..
date 값 까지 출력하지 않으면 큰 의미가 없을 것으로 생각된다.

[링크 : http://stackoverflow.com/questions/8561983/retrieving-command-line-history]
[링크 : http://www.tecmint.com/history-command-examples/]
[링크 : http://www.cyberciti.biz/faq/unix-linux-bash-history-display-date-time/]


+
2019.02.14

export HISTTIMEFORMAT="%y/%m/%d %T " 

보기 편한(?) "년/월/일 시:분:초" 포맷으로 출력된다.



'Linux' 카테고리의 다른 글

bash 파일 상태 관련 if  (0) 2014.09.01
audit  (0) 2014.08.30
dd - disk duplicate  (0) 2014.08.29
/etc/login.defs 로 암호 최소 길이 수정하기  (0) 2014.08.29
mount - relatime / noatime  (0) 2014.08.28
Posted by 구차니
Linux2014. 8. 29. 15:47
일반적으로 파티션을 덤프하거나
파티션을 만들기 위해 파일을 생성하거나(가상 디스크 파일)
이럴때 사용하는 녀석인데..

ibs는 input block size(read) 기본 512
obs는 output block size(write) 기본 512
bs 는 ibs와 obs를 동시에 대체한다.

seek는 일종의 offset으로
obs * seek 부터 쓰기 시작하며
값이 설정되지 않았다면 기본값인 512byte를 점프하게 된다.

count는 몇번 반복하냐며
ibs * count 만큼의 용량으로 복사하게 된다.

bs=BYTES
    read and write BYTES bytes at a time (also see ibs=,obs=)
cbs=BYTES
    convert BYTES bytes at a time
conv=CONVS
    convert the file as per the comma separated symbol list
count=BLOCKS
    copy only BLOCKS input blocks
ibs=BYTES
    read BYTES bytes at a time (default: 512)
if=FILE
    read from FILE instead of stdin
iflag=FLAGS
    read as per the comma separated symbol list
obs=BYTES
    write BYTES bytes at a time (default: 512)
of=FILE
    write to FILE instead of stdout
oflag=FLAGS
    write as per the comma separated symbol list
seek=BLOCKS
    skip BLOCKS obs-sized blocks at start of output
[링크  : http://linux.die.net/man/1/dd

'Linux' 카테고리의 다른 글

audit  (0) 2014.08.30
history - bash  (0) 2014.08.30
/etc/login.defs 로 암호 최소 길이 수정하기  (0) 2014.08.29
mount - relatime / noatime  (0) 2014.08.28
linux shared object(so) tutorial  (0) 2014.06.30
Posted by 구차니
Linux2014. 8. 29. 09:39
실패 -_-
가장 간단(?)한 방법으로 root를 통해 암호를 수정하면 된다.
[링크 : http://www.hecticgeek.com/2012/01/skip-password-too-simple-message-ubuntu-linux/]

---

테스트 환경
Ubuntu 10.04 LTS Desktop 32bit

/etc/pam.d/common-passwd 를 수정해서
하는 법이 있으나 pam_cracklib.so 를 구해야 하는데 웬지 찜찜하다 -_-a
[링크 : https://www.linuxquestions.org/.../howto-change-system-password-policies-passwd-length...]
[링크 : http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html]
[링크 : http://www.linuxquestions.org/questions/linux-security-4/allow-weak-password-352428/]

PASS_MAX_DAYS   60
PASS_MIN_DAYS   1
PASS_MIN_LEN    8
PASS_WARN_AGE   7 

[링크 : http://jmnote.com/wiki/리눅스_패스워드_정책]

PASS_MAX_LEN (number), PASS_MIN_LEN (number)
           Number of significant characters in the password for crypt().
           PASS_MAX_LEN is 8 by default. Don't change unless your crypt() is
           better. This is ignored if MD5_CRYPT_ENAB set to yes. 
[링크 : http://man7.org/linux/man-pages/man5/login.defs.5.html]

음... passwd 유틸리티에서 막는건지
PASS_MIN_LEN 1을 설정해도 1자리로 되진 않는다 -_-

'Linux' 카테고리의 다른 글

history - bash  (0) 2014.08.30
dd - disk duplicate  (0) 2014.08.29
mount - relatime / noatime  (0) 2014.08.28
linux shared object(so) tutorial  (0) 2014.06.30
리눅스 쉘 스크립트 << EOF 를 이용해서 자동화 하기  (0) 2014.04.11
Posted by 구차니
Linux2014. 8. 28. 13:55
장비를 살펴보다 보니 noatime 대신 relatime 이라는게 보여서 검색을 해보니..
SSD 나 SD 메모리에서 noatime과 비슷하게 쓰이지만
noatime은 access time을 전혀 갱신하지 않는데 반해(정확하게는 커널 기본값으로 제어됨)
relatime은 access time이 현재 수정/교체 시간보다 이를때에만 업데이트 하도록 한다.(먼소리야!!)
아무튼.. 조금은 더 스마트~하게 atime을 쓰기에
noatime > relatime > atime 순으로 inode에 접근하는 빈도가 적을듯 하다.

atime
Do not use noatime feature, then the inode access time is controlled by kernel defaults. See also the description for strictatime and relatime mount options.
noatime
Do not update inode access times on this filesystem (e.g, for faster access on the news spool to speed up news servers).
relatime
Update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time. (Similar to noatime, but doesn't break mutt or other applications that need to know if a file has been read since the last time it was modified.)
norelatime
Do not use relatime feature. See also the strictatime mount option.
strictatime
Allows to explicitly requesting full atime updates. This makes it possible for kernel to defaults to relatime or noatime but still allow userspace to override it. For more details about the default system mount options see /proc/mounts.
nostrictatime
Use the kernel's default behaviour for inode access time updates.

[링크 : http://linux.die.net/man/8/mount]

--time=WORD
with -l, show time as WORD instead of modification time: atime -u, access -u, use -u, ctime -c, or status -c; use specified time as sort key if --sort=time
[링크 : http://linux.die.net/man/1/ls

[링크 : http://unix.stackexchange.com/questions/8840/last-time-file-opened


커널 2.6.30 이후 부터 relatime이 기본값으로 변경되었다고 한다.
[링크 : http://unix.stackexchange.com/questions/17844/when-was-relatime-made-the-default]
Posted by 구차니
Linux/Fedora Core2014. 7. 31. 18:21
Posted by 구차니
Linux2014. 6. 30. 22:16
윈도우와 비교해서 잘 설명된 링크
그러고 보니.. 죄다 lib를 끌어다 썼지 so를 쓴적은 없었던것 같네...
lib에서 so를 끌어다 쓰도록 래핑해서 주나...?

[링크 : http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Posted by 구차니