Как удалить ненужные пробелы из вывода таблицы в оболочке, сохраняя при этом выравнивание столбцов?

> openssl passwd -1 "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/

Это расширенный синтаксис хеширования пароля в стиле Unix -crypt(3), в частности, его версия MD5.

Первая $1$идентифицирует тип хэша, следующая часть OKgLCmVl— соль, используемая при шифровании пароля, затем после символа-разделителя $до конца строки — фактический хэш пароля.

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

> openssl passwd -1 -salt "OKgLCmVl" "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/
> openssl passwd -1 -salt "OKgLCmVl" "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/

Когда вы меняете пароль , вы всегда должны переключаться на новую соль. Это не позволяет никому узнать постфактум, действительно ли новый пароль совпадает со старым. (Если вы хотите предотвратить повторное -использование старых паролей, вы можете, конечно, дважды хешировать кандидата на новый пароль :один раз со старой солью, а затем, если результат отличается от старого пароля и, таким образом, приемлемо, опять же с новой солью.)

Если вы используете openssl passwdбез опций, вы получите исходныйcrypt(3)-совместимый хеш, как описано dave _thompson _085. При этом солью являются две первые буквы хеша :

. ]
> openssl passwd "a"
imM.Fa8z1RS.k
> openssl passwd -salt "im" "a"
imM.Fa8z1RS.k

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

(Однажды я подсчитал объем данных, необходимых для хранения полного набора радужных таблиц для каждого классического crypt(3)хэша. Я не помню точного результата, но, если предположить, что мои расчеты были верны, он был порядка «скромной стопки мульти--терабайтных дисков». На мой взгляд, это помещает его в диапазон «организованные преступники могут это сделать».)

1
07.05.2020, 20:16
2 ответа
$ ss -ltpn | awk '{ gsub("\\s{2,}"," "); print; }'
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process 
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* 
LISTEN 0 5 127.0.0.1:631 0.0.0.0:* 
LISTEN 0 100 127.0.0.1:25 0.0.0.0:* 
LISTEN 0 50 *:1716 *:* users:(("kdeconnectd",pid=2952,fd=15)) 
LISTEN 0 50 *:1717 *:* 
LISTEN 0 128 [::]:22 [::]:* 
LISTEN 0 5 [::1]:631 [::]:* 
LISTEN 0 100 [::1]:25 [::]:*
0
28.04.2021, 23:15

Оказывается, ssможет сделать это за вас, если вы просто перенаправляете вывод или перенаправляете его в файл. Например, в моей системе без конвейера я получаю это:

$ sudo ss -ltpn 
State               Recv-Q              Send-Q                           Local Address:Port                            Peer Address:Port             Process                                                                
LISTEN              0                   128                                    0.0.0.0:53939                                0.0.0.0:*                 users:(("spotify",pid=4152748,fd=115))                                
LISTEN              0                   10                                     0.0.0.0:57621                                0.0.0.0:*                 users:(("spotify",pid=4152748,fd=96))                                 
LISTEN              0                   128                                    0.0.0.0:22                                   0.0.0.0:*                 users:(("sshd",pid=822,fd=3))                                         
LISTEN              0                   128                                  127.0.0.1:10391                                0.0.0.0:*                 users:(("Enpass",pid=2193055,fd=38))                                  
LISTEN              0                   5                                    127.0.0.1:631                                  0.0.0.0:*                 users:(("cupsd",pid=818,fd=8))                                        
LISTEN              0                   5                                    127.0.0.1:9292                                 0.0.0.0:*                 users:(("emacs",pid=178419,fd=13))                                    
LISTEN              0                   4096                                   0.0.0.0:111                                  0.0.0.0:*                 users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))             
LISTEN              0                   5                                    127.0.0.1:34512                                0.0.0.0:*                 users:(("purevpnd",pid=839,fd=6))                                     
LISTEN              0                   128                                       [::]:22                                      [::]:*                 users:(("sshd",pid=822,fd=4))                                         
LISTEN              0                   5                                        [::1]:631                                     [::]:*                 users:(("cupsd",pid=818,fd=7))                                        
LISTEN              0                   4096                                      [::]:111                                     [::]:*                 users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))             

Однако, если я просто направлю на cat, я получу:

$ sudo ss -ltpn | cat
State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess                                                   
LISTEN 0      128          0.0.0.0:53939      0.0.0.0:*    users:(("spotify",pid=4152748,fd=115))                   
LISTEN 0      10           0.0.0.0:57621      0.0.0.0:*    users:(("spotify",pid=4152748,fd=96))                    
LISTEN 0      128          0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=822,fd=3))                            
LISTEN 0      128        127.0.0.1:10391      0.0.0.0:*    users:(("Enpass",pid=2193055,fd=38))                     
LISTEN 0      5          127.0.0.1:631        0.0.0.0:*    users:(("cupsd",pid=818,fd=8))                           
LISTEN 0      5          127.0.0.1:9292       0.0.0.0:*    users:(("emacs",pid=178419,fd=13))                       
LISTEN 0      4096         0.0.0.0:111        0.0.0.0:*    users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))
LISTEN 0      5          127.0.0.1:34512      0.0.0.0:*    users:(("purevpnd",pid=839,fd=6))                        
LISTEN 0      128             [::]:22            [::]:*    users:(("sshd",pid=822,fd=4))                            
LISTEN 0      5              [::1]:631           [::]:*    users:(("cupsd",pid=818,fd=7))                           
LISTEN 0      4096            [::]:111           [::]:*    users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))

Я также получаю тот же результат, если просто перенаправляю в файл:sudo ss -ltpn > file.


Для более общего решения вы можете использовать column. Например, для данного входного файла:

$ cat file
State          Recv-Q         Send-Q                   Local Address:Port                    Peer Address:Port         Process                                                            
LISTEN         0              128                            0.0.0.0:53939                        0.0.0.0:*             users:(("spotify",pid=4152748,fd=115))                            
LISTEN         0              10                             0.0.0.0:57621                        0.0.0.0:*             users:(("spotify",pid=4152748,fd=96))                             
LISTEN         0              128                            0.0.0.0:22                           0.0.0.0:*             users:(("sshd",pid=822,fd=3))                                     
LISTEN         0              128                          127.0.0.1:10391                        0.0.0.0:*             users:(("Enpass",pid=2193055,fd=38))                              
LISTEN         0              5                            127.0.0.1:631                          0.0.0.0:*             users:(("cupsd",pid=818,fd=8))                                    
LISTEN         0              5                            127.0.0.1:9292                         0.0.0.0:*             users:(("emacs",pid=178419,fd=13))                                
LISTEN         0              4096                           0.0.0.0:111                          0.0.0.0:*             users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))         
LISTEN         0              5                            127.0.0.1:34512                        0.0.0.0:*             users:(("purevpnd",pid=839,fd=6))                                 
LISTEN         0              128                               [::]:22                              [::]:*             users:(("sshd",pid=822,fd=4))                                     
LISTEN         0              5                                [::1]:631                             [::]:*             users:(("cupsd",pid=818,fd=7))                                    
LISTEN         0              4096                              [::]:111                             [::]:*             users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))         

Я могу передать это через column -t, чтобы красиво напечатать:

$ column -t -N"State,Recv-Q,Send-Q,Local Address:Port,Peer Address:Port,Process" <(tail -n +2 file)
State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN  0       128     0.0.0.0:53939       0.0.0.0:*          users:(("spotify",pid=4152748,fd=115))
LISTEN  0       10      0.0.0.0:57621       0.0.0.0:*          users:(("spotify",pid=4152748,fd=96))
LISTEN  0       128     0.0.0.0:22          0.0.0.0:*          users:(("sshd",pid=822,fd=3))
LISTEN  0       128     127.0.0.1:10391     0.0.0.0:*          users:(("Enpass",pid=2193055,fd=38))
LISTEN  0       5       127.0.0.1:631       0.0.0.0:*          users:(("cupsd",pid=818,fd=8))
LISTEN  0       5       127.0.0.1:9292      0.0.0.0:*          users:(("emacs",pid=178419,fd=13))
LISTEN  0       4096    0.0.0.0:111         0.0.0.0:*          users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))
LISTEN  0       5       127.0.0.1:34512     0.0.0.0:*          users:(("purevpnd",pid=839,fd=6))
LISTEN  0       128     [::]:22             [::]:*             users:(("sshd",pid=822,fd=4))
LISTEN  0       5       [::1]:631           [::]:*             users:(("cupsd",pid=818,fd=7))
LISTEN  0       4096    [::]:111            [::]:*             users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))
3
28.04.2021, 23:15

Теги

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