Ubuntu 에서 sudo 권한이 필요할때 특정 사용자와 특정 명령어에 대해 root password를 물어보지 않고 실행되게 할 수 있다.


다음 명령어를 수행하면 sudo 권한 파일을 수정 할 수 있다.

  • $ sudo visudo
  • $ sudo visudo

    # # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d # Allow member and tool # leechwin ALL=(ALL) NOPASSWD:ALL # leechwin ALL=(ALL) NOPASSWD: /usr/sbin/chroot, /bin/kill, /usr/bin/killall

  • visudo 수행 후 나오는 에디터 하단에 다음과 같은 형식으로 기술하면 된다.
    • {user} ALL=(ALL) NOPASSWD: {tool path}
  • leechwin 이라는 사용자에게 chroot, kill, killall 에대한 명령에 대해서 sudo 권한을 주어지게 할 경우 다음과 같이 기술 할수 있다.
    • leechwin ALL=(ALL) NOPASSWD: /usr/sbin/chroot, /bin/kill, /usr/bin/killall
  • command path 는 다음 명령으로 확인 가능하다.
    • $ which {tool name}

visudo 에서 수정된 파일은 다음 파일에 저장된다.

  • /etc/sudoers


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

[Ubuntu] sudo 권한 등록  (0) 2017.08.09
[Ubuntu] hostname 변경  (0) 2017.01.19
[Ubuntu] Word Count  (0) 2017.01.19
[Ubuntu] Memory 확인  (0) 2017.01.19
[Ubuntu] Filesystem 용량 확인  (0) 2017.01.19
[Ubuntu] 커널버전 및 Ubuntu 버전 확인  (0) 2017.01.18
Posted by leechwin

winston에서는 로그 파일 관리를 위해 다음과 같은 설정을 제공한다.

  • File Transport Options
    • maxsize: Max size in bytes of the logfile, if the size is exceeded then a new file is created, a counter will become a suffix of the log file.
      • 로그파일의 최대 크기를 지정가능하고, 해당 크기를 넘을 경우 새로운 로그파일을 생성
        • ex) error.log, error1.log, error2.log
    • maxFiles: Limit the number of files created when the size of the logfile is exceeded.
      • 생성되는 로그 파일의 갯수를 지정가능하고, maxFiles 갯수를 넘어갈경우 가장 오래된 파일을 삭제하고 새로 생성
    • zippedArchive: If true, all log files but the current one will be zipped.
      • 로그파일을 zip 파일로 유지
  • 예제
    • 로그파일을 최대 100MB x 5 개로 유지
    • var fileAppender = new winston.transports.File({
          timestamp: _timestamp,
          formatter: _customFormatter,
          json: false,
          filename: 'filelog.log',
          maxsize: 104857600, // 100 MB = 1024 * 1024 * 100 = 104857600 Bytes
          maxFiles: 5
      });
      
  • winston-daily-rotate-file
    • Daily로 로그를 생성하고 싶을 경우 winston-daily-rotate-file 모듈을 사용하면 된다.


Posted by leechwin

Winston의 Log Format을 Customizing 하는 방법에 대해 알아본다.


Winston Log Format을 수정하기 위해서는 Winston Transport의 formatter 설정을 구현해야 한다.

  • timestamp 및 output format 함수를 재구현
function _timestamp() {
        return moment().format("YYYY-MM-DD HH:mm:ss.SSS");
}
function _customFormatter(options) {
    return options.timestamp() +
            ' ['+ options.level.toUpperCase() + ']' +
            '['+ options.meta.loggerName + '] ' +
            (!options.meta.clientMessage ? options.message : options.meta.clientMessage);
}
var consoleAppender = new winston.transports.Console({
    timestamp: _timestamp,
    formatter: _customFormatter
});
var fileAppender = new winston.transports.File({
    timestamp: _timestamp,
    formatter: _customFormatter,
    json: false,
    filename: 'filelog.log'
});


Posted by leechwin