Почему / etc / default / locale не используется при входе через ssh?

Ну, это зависит от файла. У большинства (де) программ сжатия есть флаг, в котором перечислены содержимое архива.

tar / tar.gz / tgz / tar.xz / tar.bz2 / tbz файлов
$ tar tf foo.tgz 
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/subdir2/
dir1/subdir2/file
dir2/
zip файлов
$ zip -sf foo.zip 
Archive contains:
  dir1/
  dir2/
  dir1/subdir1/
  dir1/subdir1/file
  dir1/subdir2/
  dir1/subdir2/file
Total 6 entries (0 bytes)
7zip файлов
$ 7z l foo.7z 

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.utf8,Utf16=on,HugeFiles=on,4 CPUs)

Listing archive: foo.7z

--
Path = foo.7z
Type = 7z
Solid = -
Blocks = 0
Physical Size = 168
Headers Size = 168

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2015-03-30 19:00:07 ....A            0            0  dir1/subdir1/file
2015-03-30 19:00:07 ....A            0            0  dir1/subdir2/file
2015-03-30 19:07:32 D....            0            0  dir2
2015-03-30 19:00:07 D....            0            0  dir1/subdir2
2015-03-30 19:00:07 D....            0            0  dir1/subdir1
2015-03-30 19:00:06 D....            0            0  dir1
------------------- ----- ------------ ------------  ------------------------
                                     0            0  2 files, 4 folders
 $ rar v foo.rar 

RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012
Trial version             Type RAR -? for help

Archive foo.rar

Pathname/Comment
                  Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 dir1/subdir1/file
                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
 dir1/subdir2/file
                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
 dir1/subdir1
                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
 dir1/subdir2
                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
 dir1
                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
 dir2
                     0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0
-------------------------------------------------------------------------------
    6                0       16   0%

Это наиболее популярные форматы архивов. Имея это в виду, вы можете написать небольшой скрипт, который использует соответствующую команду, в зависимости от расширения файла, который вы ему указываете:

#!/usr/bin/env bash

for file in "$@"
do
    printf "\n-----\nArchive '%s'\n-----\n" "$file"
    ## Get the file's extension
    ext=${file##*.}
    ## Special case for compressed tar files. They sometimes
    ## have extensions like tar.bz2 or tar.gz etc.
    [[ "$(basename "$file" ."$ext")" =~ \.tar$ ]] && ext="tgz"

    case $ext in
        7z)
            type 7z >/dev/null 2>&1 && 7z l "$file" || 
            echo "ERROR: no 7z program installed"
            ;;
        tar|tbz|tgz)
            type tar >/dev/null 2>&1 && tar tf "$file"|| 
            echo "ERROR: no tar program installed"
            ;;
        rar)
            type rar >/dev/null 2>&1 && rar v "$file"|| 
            echo "ERROR: no rar program installed"
            ;;
        zip)
            type zip >/dev/null 2>&1 && zip -sf "$file"|| 
            echo "ERROR: no zip program installed"
            ;;
        *)
            echo "Unknown extension: '$ext', skipping..."
            ;;
    esac
done

Сохраните этот скрипт в своем PATH и сделайте это исполняемый файл. Затем вы можете перечислить содержимое любого архива:

$ list_archive.sh foo.rar foo.tar.bz foo.tar.gz foo.tbz foo.zip

-----
Archive 'foo.rar'
-----

RAR 4.20   Copyright (c) 1993-2012 Alexander Roshal   9 Jun 2012
Trial version             Type RAR -? for help

Archive foo.rar

Pathname/Comment
                  Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 dir1/subdir1/file
                     0        8   0% 30-03-15 19:00 -rw-r--r-- 00000000 m3b 2.9
 dir1/file
                     0        8   0% 30-03-15 19:29 -rw-r--r-- 00000000 m3b 2.9
 dir1/subdir1
                     0        0   0% 30-03-15 19:00 drwxr-xr-x 00000000 m0  2.0
 dir1
                     0        0   0% 30-03-15 19:29 drwxr-xr-x 00000000 m0  2.0
 dir2
                     0        0   0% 30-03-15 19:07 drwxr-xr-x 00000000 m0  2.0
-------------------------------------------------------------------------------
    5                0       16   0%


-----
Archive 'foo.tar.bz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.tar.gz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.tbz'
-----
dir1/
dir1/subdir1/
dir1/subdir1/file
dir1/file
dir2/

-----
Archive 'foo.zip'
-----
Archive contains:
  dir1/
  dir1/subdir1/
  dir1/subdir1/file
  dir1/file
  dir2/
Total 5 entries (0 bytes)

И так как кто-то упомянул о меньшем редакторе, естественно, emacs также может это сделать:

1
задан 23 March 2016 в 23:32

1 ответ

Прочитайте man ssh, который говорит (частично), в разделе ENVIRONMENT:

 Additionally, ssh reads ~/.ssh/environment, and adds lines of the format
 “VARNAME=value” to the environment if the file exists and users are
 allowed to change their environment.  For more information, see the
 PermitUserEnvironment option in sshd_config(5).  

И в разделе FILES см .:

 ~/.ssh/environment
         Contains additional definitions for environment variables; see
         ENVIRONMENT, above.

и

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in,
         just before the user's shell (or command) is started.  See the
         sshd(8) manual page for more information.

и

 /etc/ssh/sshrc
         Commands in this file are executed by ssh when the user logs in,
         just before the user's shell (or command) is started.  See the
         sshd(8) manual page for more information.
0
ответ дан 23 May 2018 в 12:38
  • 1
    Ни один из этих файлов не существует по умолчанию, поэтому маловероятно, что они влияют на их среду; более вероятно, их текущая среда экспортируется в сеанс SSH. – kos 23 March 2016 в 23:45
  • 2
    @kos: Нет смысла копировать среду исходной системы в целевую систему. Файлы, указанные на странице man, позволят OP решить свою проблему, не откручивая PAM – waltinator 23 March 2016 в 23:56
  • 3
    Я был уверен, что видел вариант для этого, но я, должно быть, мечтал. Однако, да, это было бы маловероятно ни на секунду задуматься, но все же нужно было знать об установке. Ответ OP имеет смысл. – kos 24 March 2016 в 00:08
  • 4
    Действительно, и это полезный материал, который следует иметь в виду, но первоначальный вопрос был о чем-то немного другом, хотя и связанном. Проблема заключалась в том, почему /etc/default/locale не был получен, и причина была PAM (см. Мой собственный ответ). – Normadize 24 March 2016 в 02:09

Другие вопросы по тегам:

Похожие вопросы: